TForm hat übrigens bereits eine Methode um den Client-Bereich als Bitmap zurückzuliefern:
TForm.GetFormImage
Hallo,
nach so was hab ich gesucht
Nur dummerweise scheint das was nicht richtig freigegeben zu werden.
Ich erhalte von FastMM folgende Fehlermeldung am Ende vom Programm:
Zitat:
---------------------------
Project1.exe: Speicherleck entdeckt
---------------------------
Diese Anwendung hat Speicher-Lecks. Die kleineren Speicher-Lecks sind (ausschließlich von Zeigern registrierte Lecks):
21 - 28 bytes: TBrush x 1
29 - 36 bytes: TPen x 1, Unbekannt x 2
37 - 44 bytes: TFont x 1
61 - 68 bytes: TBitmap x 1
101 - 108 bytes: TBitmapCanvas x 1
117 - 124 bytes: TBitmapImage x 1
157 - 172 bytes: Unbekannt x 1
Hinweis: Um eine Protokolldatei zu erhalten, die Details über Speicherlecks enthält, aktivieren Sie die "{$ FullDebugMode}" und "{$ LogMemoryLeakDetailToFile}" Definitionen. Um die Speicherleckprüfung zu deaktivieren, deaktivieren sie die "{$ EnableMemoryLeakReporting} -Option".
---------------------------
OK
---------------------------
bei diesem Test-Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Jpg: TJPEGImage;
begin
Jpg := TJPEGImage.Create;
Jpg.Assign(Form1.GetFormImage);
Jpg.CompressionQuality := 100;
Jpg.ProgressiveEncoding := false;
Jpg.SaveToFile('D:\test.jpg');
FreeAndNil(Jpg);
end;
(ja ich weiss, da fehlt ein try/finally-Block! - ist nur Test)
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<