Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Screenshot vom Clientbereich der Mainform machen

  Alt 1. Apr 2012, 17:29
TForm hat übrigens bereits eine Methode um den Client-Bereich als Bitmap zurückzuliefern: Delphi-Referenz durchsuchenTForm.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! <<
  Mit Zitat antworten Zitat