Hallo, habe folgenden Code
Delphi-Quellcode:
function ScreenToFile():timage;
var
screenimage:timage;
Canvas: TCanvas;
begin
Canvas := TCanvas.Create;
try
Canvas.Handle := GetWindowDC(0);
try
screenimage := timage.Create(nil);
try
screenimage.Picture.Bitmap.Width := Screen.DesktopWidth;
screenimage.Picture.Bitmap.Height:= Screen.DesktopHeight;
screenimage.Picture.Bitmap.PixelFormat := pf32bit;
BitBlt(screenimage.Picture.Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred(
Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft,
Screen.DesktopTop, screenimage.Picture.Bitmap.Canvas.CopyMode);
//screenimage.Picture.bitmap.SaveToFile('c:\screen.bmp');
finally
ScreenToFile:=screenimage;
screenimage.Free;
end;
finally
ReleaseDC(0, Canvas.Handle);
end;
finally
Canvas.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
image1 := screentofile();
image1.Picture.Bitmap.SaveToFile('C:\neuertest.bmp');
end;
wie ihr seht, habe ich eine funktion die ein timage zurück gibt (in diesem falle einen screenshot). image1 ist bei mir ein Image - control auf meinem formular. wenn ich nun diesem image den rückgabe wert von screentofile() zuweise und ihn wie im beispiel speichern will, bekomme ich immer einen fehlermeldung (exeption an stelle bla , bla, bla komische hex-zahl bla bla)
warum ??? wenn ich in der prozedur das timageobject mit screenimage.Picture.bitmap.SaveToFile('c:\screen.b mp'); speicher klappt alles wunderbar??!!