Hmmm... no więc mam takie dwie procedury i zastanawiam się czy
coś jest w nich nie tak, bo wygląda to tak że jak kliknę na
Button1 to w drugim programie na Imagu pojawia screen tyle że
przeważnie się pojawia a czasami program się wysypuje z jakimś
Acces Violation czy jakoś tak, no i nie wiem dlaczego, już od
pół godziny klikam w ten button i nie wiem dlaczego czasami
działa a czasami nie (robie odstępy czasowe między kliknięciami)
procedure TForm1.Button1Click(Sender: TObject);
var
Bitmap : TBitmap;
ScreenDC : HDC;
FJpeg : TJpegImage;
MStream : TStream;
begin
Bitmap := TBitmap.Create;
Bitmap.Width := GetSystemMetrics(SM_CXSCREEN);
Bitmap.Height := GetSystemMetrics(SM_CYSCREEN);
ScreenDC := GetDC(0);
BitBlt(Bitmap.Canvas.Handle, 0, 0, Bitmap.Width,
Bitmap.Height, ScreenDC, 0, 0, SRCCOPY);
ReleaseDC(0, ScreenDC);
FJpeg := TJpegImage.Create;
FJpeg.Assign(Bitmap);
FJpeg.CompressionQuality := 50;
FJpeg.Compress;
MStream := TMemoryStream.Create;
FJpeg.SaveToStream(MStream);
try
NMStrm1.PostIt(MStream);
finally
Bitmap.Free;
FJpeg.Free;
MStream.Free;
end;
end;
procedure TForm1.NMStrmServ1MSG(Sender: TComponent;
const sFrom: String; strm: TStream);
var
FJpeg : TJpegImage;
begin
FJpeg := TJpegImage.Create;
FJpeg.LoadFromStream(strm);
Image1.Picture.Assign(FJpeg);
FJpeg.Free;
end;
Może to jakiś wewnęczny błąd komponentów NMStream i NMStreamServ ?