![]() |
TDrawGrid als Bitmap speichern
Hallo mal,
Verzweifelt suche ich mal wieder eure Hilfe. Ich versuche schon seit einiger Zeit eine TDrawGrid in die Zwischenablage zu kopieren (also ne Art Screenshot), bzw. Die TDrawGrid als BMP zu speichern. Freue mich für jede Anregung... Danke im Voraus :wall: |
Re: TDrawGrid als Bitmap speichern
Moin,
schau dir mal folgendes an...
Delphi-Quellcode:
MfG
procedure DrawGridToClipboard(DrawGrid: TDrawGrid);
var Bitmap: TBitMap; i, Hoehe, Breite:integer; begin Bitmap:=TBitmap.Create; try Bitmap.HandleType:=bmDIB; Hoehe:=0; for i:=1 to DrawGrid1.RowCount do Hoehe:=Hoehe + DrawGrid.RowHeights[i-1] + DrawGrid.GridLineWidth; Breite:=0; for i:=1 to DrawGrid.ColCount do Breite:=Breite + DrawGrid.ColWidths[i-1] + DrawGrid.GridLineWidth; Bitmap.Width:=Breite; Bitmap.Height:=Hoehe; BitBlt(Bitmap.Canvas.Handle, 0, 0, breite, hoehe, DrawGrid.Canvas.Handle, 0, 0, cmSrcCopy); Clipboard.Assign(Bitmap); finally Bitmap.free; end; end; Thorsten |
Re: TDrawGrid als Bitmap speichern
Tausend Dank, funktioniert einwandfrei :-D :drunken: . Ich hab jetzt nur noch eine unwissende Frage: Wo kann ich mich über das 'Handle' schlau machen. daran scheiterte meine Funktion wieder einmal :angel2: .
|
Re: TDrawGrid als Bitmap speichern
Moin,
das verstehe ich jetzt nicht. Es funktioniert einwandfrei, was geht dann nicht? Welches Handle meinst du? (es gibt zwei in der Prozedur) Fragen über Fragen MfG Thorsten |
Re: TDrawGrid als Bitmap speichern
Sorry, war jetzt etwas unverständlich. Der Code funktioniert wie nach Wunsch. Ich kam auf die Frage (Handle) da du Bitmap.HandleType benutzest. Ich komme nicht ganz hinter die property Handle, also was da genau geschieht und wann ich Handle-Property oder Befehle genau benutze.
Sorry für die Mühe :cyclops: |
Re: TDrawGrid als Bitmap speichern
Also,
das Handle ist nur eine Zahl, die den Zugriff auf das Objekt erlaubt. Hinter dieser Zahl verbirgt sich einfach der Strukturlosezugriff auf Elemente (meisst grafische Flächen, aber auch bei Dateien wird dieses Konzept benutzt, und andere...) Dadurch konnte die BitBlt-Prozedur ganz allgemein definiert werden und sie kann so auf verschiedenen Komponenten arbeiten. MfG Thorsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz