![]() |
Image in DrawGrid :(
Delphi-Quellcode:
klick auf den button
procedure TForm1.Button1Click(Sender: TObject);
var ImageList1: TImageList; begin DrawGrid1.Canvas.Draw(1,1,ImageList1[0]); end; im drawgrid zeile 1 und spalte 1 soll bild aus ImageList geladen werden. Fehler: Klasse besitzt keine Standarteigenschaft. Kann mir jemand helfen ? |
Re: Image in DrawGrid :(
Erst mal, wird an einer anderen Stelle ins Grid gezeichnet. (OnDrawCell)
Und zum Anderen, sollte auch ein Bild in der ImageList sein. Ach ja, wie man die Grafiken eine ImageList zeichnet, steht in der OH. (TImageList / Draw)
Delphi-Quellcode:
Procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
Begin If (ACol = 1) and (ARow = 1) Then Begin ImageList1.Draw(DrawGrid1.Canvas, Rect.Left, Rect.Top, 0); { Der Bereich des Feldes, welches gezeichnet werden soll, } { liegt innerhalb des in Rect fesgelegten Bereich. } { Und es ist besser nicht ausserhalb dieses Bereichs zu zeichnen. } { Also sollten für dieses Beispiel die Bilder nicht } { grösser als die entsprechende Zelle sein. } End; End; |
Re: Image in DrawGrid :(
ich steig da nicht hinter ! :(
Delphi-Quellcode:
wenn ich nun auf den button drücke, so wird mir das 10. bild aus der ImageList1 ausgegeben.
procedure TForm1.Button1Click(Sender: TObject);
var Rect: TRect; begin Rect.Left := 0; Rect.Top := 0; ImageList1.Draw(DrawGrid1.Canvas, Rect.Left, Rect.Top, 10); end; doch wie stelle ich das an, das das bild, in reihe 2 spalte 4 positioniert wird ? das bild und die zellen sind jeweils 50px * 50px groß. das schon mit SELECTION probiert, bin dabei aber auch gescheitert. was meinst du mit OnDrawCell. Kannst du mal bitte den Code posten ? EDIT: Das Bild ist 50px * 50px groß, wird aber nur sehr verschrumpelt klein angzeigt, also nicht in der Originalgröße ! :( wie passe ich das bild an die zellengröße an ? Habe schon mit DrawGrid1.CellRect(x,y); probiert... VIELN DANK !! :cry: |
Re: Image in DrawGrid :(
Hai shareholder,
OnDrawCell ist ein Ereigniss von TStringGrid. Dort, und nur dort, musst Du das Image zeichnen. Genau wie es himitsu beschrieben hat. Du brauchst seinen Code doch nur noch so zu erweitern das die Funktion zum Zeichnen des Images nur ausgeführt wird wenn eine zusätzliche Bedingung (Boolean-Variable) zutrifft. |
Re: Image in DrawGrid :(
muah, ich dreh durch... ich setze mich nochmal ran ! thx
|
Re: Image in DrawGrid :(
ich krieg's net gebacken !!! :wall:
was bezwecke ich denn überhaupt mit dieser abfrage:
Delphi-Quellcode:
? sehe darin keinen sinn. bitte klärt mich auf. :)
if (ACol = 1) and (ARow = 1) Then Begin
|
Re: Image in DrawGrid :(
OnDrawCell wird beim Zeichnen von jeder Zelle des StringGrids aufgerufen.
Über ACol und ARow kannst Du nun abfragen welche Reihe bzw. Spalte (und damit welche Zelle) gerade gezeichnet wird. |
Re: Image in DrawGrid :(
ich hab die lösung von himitsu genommen und es funzt jetzt wunderbar. :)
Danke Euch Beiden ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 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