Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Fensterinhalt als Grafik speichern


AlexBegin - Sa 09.05.09 09:49
Titel: Fensterinhalt als Grafik speichern
Ich möchte den kompletten Inhalt (TImage, Memos) in eine Grafik-Datei (.bmp) speichern. Habe hier im Forum schon gesucht, aber nur für TImage was gefunden. Kann mir jemand weiterhelfen?

Bis dann Alex


ffgorcky - Sa 09.05.09 10:01

Wie genau möchtest Du das machen?
Möchtest Du einen Abbild des aktuellen Fensters als Bilddatei speichern? - Also sozusagen, als ob Du die Taste Alt hälst und dazu die Taste Druck Drückst?
Dafür gäbe es dieses:

Delphi-Quelltext
1:
ScreenshotActiveWindow(var BildablageVariable:TImage);                    

Oder auch genauer hier [http://www.delphi-forum.de/viewtopic.php?t=47997&highlight=screenshotactivewindow]
Und dann natürlich BildablageVariable.SaveToFile('BeliebigerDateiName'), wie man es dort ja auch sieht.


Webo - Sa 09.05.09 10:01

Ich gehe mal davon aus, dass du von deiner eigenen Form einen Screenshot machen möchtest ...

Dan hilft dir dieser Link [http://www.delphipraxis.net/topic134902_form+screenshot.html&highlight=getprocaddress+huser32+printwindow] weiter.



Grüße

Webo


AlexBegin - Sa 09.05.09 10:15

Erst einmal Danke für die schnelle Antwort. Ich wollte ein Abbild meines Forms haben, aber ohne Rand. Ich muss mir heute Abend das Ganze anschauen. Wenn ich noch Fragen habe werde ich mich dann melden.

Bis dann Alex


ssb-blume - Sa 09.05.09 10:23

Es gibt auch ein schönes Programm mit allen möglichen Features: Hardcopy.
Siehe hier: http://www.sw4you.de oder http://www.hardcopy.de


AlexBegin - Sa 09.05.09 10:37

Ich habe noch eine andere Möglichkeit gefunden, nehmlich mit dem Befehl :

Form1.GetFormImage.SaveToFile('c:\bild.bmp')


Webo - Sa 09.05.09 10:37

Hier hab ich eben noch ein kleinen Codeschnippsel, den ich mal in einem Tool von mir verwendet habe:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
 Bitmap: TBitmap;
begin
 Bitmap:=GetFormImage;
 try
   Bitmap.SaveToFile(yourfilename);
 finally
   Bitmap.Free;
 end;


Dann wird, mit Ausnahme des TWebBrowser - Inhalt, die Form gespeichert, ohne den Rand oben und an den Seiten.