| Автор
| Сообщение |
|
|
|
Цитата |
|
пожалуста помогити
1)почему не работает и как исправить
| Код: |
var
q:tmemorystream;
begin
q:=tmemorystream.Create;
image1.Picture.Bitmap.SaveToStream(q);
q.Position:=0;
image2.Picture.Bitmap.LoadFromStream(q);
|
2) как сохранить в потоки без IMAGE
| Код: |
var
ms:TMemoryStream;
dx, dy : integer;
hSourceDC : HDC;
begin
dx := screen.DesktopWidth;
dy := screen.DesktopHeight;
hSourceDC := CreateDC('DISPLAY',nil,nil,nil);
Image1.Picture.Bitmap.Width := dx;
Image1.Picture.Bitmap.Height := dy;
Image1.Picture.Bitmap.Canvas.FillRect(Rect(0, 0, dx, dy));
BitBlt(Image1.Picture.Bitmap.Canvas.Handle, 0, 0, dx, dy, hSourceDC, 0, 0, SRCCopy);
DeleteDC(hSourceDC);
end; |
|
|
| В начало |
|
 |
|
|
 |
 TuXAPuK
Великий гонщик


Возраст: 26
Знак зодиака: 
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
|
|
|
Цитата |
|
Насчёт 1-го... Точно не знаю... Но я-бы зделал так...
| Код: | var
q:tstream;
begin
q:=tmemorystream.Create;
image1.Picture.Bitmap.SaveToStream(q);
q.seek(0,soFromBeginning);
image2.Picture.Bitmap.LoadFromStream(q);
end; |
А насчёт второго сам мучуюсь не знаю... _________________
 |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| TuXAPuK не пашит твой код результат такойже как и у моево |
|
| В начало |
|
 |
 TuXAPuK
Великий гонщик


Возраст: 26
Знак зодиака: 
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
|
|
|
Цитата |
|
Мой модуль на делфи 7... | Код: | unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Function MkShotStream(in_iW, in_iH: Integer): TStream;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
q:tmemorystream;
begin
q:=tmemorystream.Create;
image1.Picture.Bitmap.SaveToStream(q);
q.Position:=0;
image2.Picture.Bitmap.LoadFromStream(q);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
q:tstream;
begin
q:=tmemorystream.Create;
image1.Picture.Bitmap.SaveToStream(q);
q.seek(0,soFromBeginning);
image2.Picture.Bitmap.LoadFromStream(q);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
ms:TMemoryStream;
dx, dy : integer;
hSourceDC : HDC;
begin
dx := screen.DesktopWidth;
dy := screen.DesktopHeight;
hSourceDC := CreateDC('DISPLAY',nil,nil,nil);
Image2.Picture.Bitmap.Width := dx;
Image2.Picture.Bitmap.Height := dy;
Image2.Picture.Bitmap.Canvas.FillRect(Rect(0, 0, dx, dy));
BitBlt(Image2.Picture.Bitmap.Canvas.Handle, 0, 0, dx, dy, hSourceDC, 0, 0, SRCCopy);
DeleteDC(hSourceDC);
end;
Function MkShotStream(in_iW, in_iH: Integer): TStream;
var
iDC: HDC;
pBitmap: TBitmap;
Begin
pBitmap := TBitmap.Create;
pBitmap.Width := in_iW;
pBitmap.Height := in_iH;
iDC := GetDC(0);
StretchBlt(pBitmap.Canvas.Handle, 0, 0, in_iW, in_iH, iDC, 0, 0, Screen.Width, Screen.Height, SRCCOPY);
ReleaseDC(0, iDC);
Result := TMemoryStream.Create;
pBitmap.SaveToStream(Result);
Result.Seek(0, soFromBeginning);
End;
procedure TForm1.Button4Click(Sender: TObject);
begin
Image2.Picture.Bitmap.LoadFromStream(MkShotStream(Image2.Width, Image2.Height));
end;
end. |
Всё 100% работает.... _________________
 |
|
| В начало |
|
 |
 TuXAPuK
Великий гонщик


Возраст: 26
Знак зодиака: 
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
|
|
|
Цитата |
|
D7project + exe _________________
 |
|
| В начало |
|
 |
|
|
|
Цитата |
|
TuXAPuK Тут и в прямь какаята мистика я пользуюсь делфи 2005
твой проект работает идиально пишу слово в слова в своём и при
передачи картинки в паток картинка в первой имаги исчезает не
поивившесь во второй спасибо что помог буду разбираца. а
изображения икрана прикрасно заходит и выходит |
|
| В начало |
|
 |
 TuXAPuK
Великий гонщик


Возраст: 26
Знак зодиака: 
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
|
|
|
Цитата |
|
Усложняем поставленную задачу....
| Код: | //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TMemoryStream *MyStream = new TMemoryStream;
Image1->Picture->Bitmap->SaveToStream(MyStream);
MyStream->Seek(0, soFromBeginning);
Image2->Picture->Bitmap->LoadFromStream(MyStream);
MyStream->Free();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
HDC hdcImage;
hdcImage = GetDC(0);
Image2->Picture->Bitmap = new Graphics::TBitmap;
Image2->Picture->Bitmap->Width = Image2->Width;
Image2->Picture->Bitmap->Height = Image2->Height;
StretchBlt(Image2->Picture->Bitmap->Canvas->Handle, 0, 0, Image2->Width, Image2->Height, hdcImage, 0, 0, Screen->Width, Screen->Height, SRCCOPY);
ReleaseDC(0, hdcImage);
}
//---------------------------------------------------------------------------
|
И кто тут говорил о том что на делфи меньше кода... И програмки с такой-же скоростью работают... Вот вам достойный пример... _________________
 |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Цитата: |
И кто тут говорил о том что на делфи меньше кода... И програмки с такой-же скоростью работают... Вот вам достойный пример
|
И где ты такое слышал я лично только маты по поводу огромнова размера слышал ? Это как нажрача надо чтоп такое сказать.[/code] |
|
| В начало |
|
 |
 aka57
Я живу тут....

Возраст: 28
Знак зодиака: 
Зарегистрирован: 03.07.2003
Сообщения: 1287
|
|
|
Цитата |
|
to TuXAPuK
Кода не меньше... Как я погляжу, ты в С++ только два нажатия обрабатыаешь и про одну процедурку забыл... Что до определения класса формы, то он лежит в отдельном файле. В итоге по совокупности получаем примерно столько же.
p.s. А VCL случаем не на Object Pascal написана? |
|
| В начало |
|
 |
|
|
 |
 TuXAPuK
Великий гонщик


Возраст: 26
Знак зодиака: 
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
|
|
|
Цитата |
|
Да нее... Если-бы мог... То и функцию на C++ написал-бы... Я его всего 2-ю недельку учу поэтому всего не знаю... Но то что функция копирования | Код: | TMemoryStream *MyStream = new TMemoryStream;
Image1->Picture->Bitmap->SaveToStream(MyStream);
MyStream->Seek(0, soFromBeginning);
Image2->Picture->Bitmap->LoadFromStream(MyStream);
MyStream->Free(); | работает быстее я вам точно говорю на моём 2м компе 133Mhz это значительно чувствуется... _________________
 |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
to TuXAPuK
Ты с С++Стройкой не сравнивай. Во-первых, там и правда VCL написана на том же самом Паскале, а во-вторых, компиляторы Стройки и Delphi отличаются только синтаксическим анализатором, а в своем ядре это один и тот же старый добрый Borland C++ Compiler. _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
|