![]() |
TstringGrid Problem
Hi,
ich habe jetzt eine Stunde lang nach einer lösung gesucht, aber nix gefunden/verstanden. Ich habe ein Tstringgrid und möchte ein kleines Bildchen in eine Zelle reinsetzen..... geht das? Wenn ja WIE?? Wenn das nicht geht dann könnte ich das auch mit dem Zellenhintergrund umgehen. Ich weiß dass man den Hintergrund einer einzelnen Zelle mit ondrawcell verändern kann. Das habe ich aber auch nicht hinbekommen, da ich das nicht verstanden habe, was ich gecodet habe :P .... Könnt ihr mir helfen? Mit einem kleinen Bildchen in einer zelle wäre es am einfachsten...... Mfg DonMarkus |
Re: TstringGrid Problem
Du kannst dazu die Objects-Eigenschaft verwenden. Schau mal in die Hilfe.
|
Re: TstringGrid Problem
Ja das könnte gehen. Aber wie kann ich ein gif bildchen IN das Programm einbinden und dort dann aufrufen?
|
Re: TstringGrid Problem
Einfach in eine Imagelist laden.
![]()
Delphi-Quellcode:
Du musst die Images (keine Gifs, besser BMPs) zur Entwurfzeit in die Imagelist laden und im OnDrawCell die entsprechnde ID angeben.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); var bm: TBitmap; begin if Sender <> NIL then with Sender as TStringGrid do begin bm := TBitmap.Create; try ImageList1.GetBitmap(0, bm); //statt 0 müsste man hier einen entsprechenden Index angeben Canvas.Draw(Rect.Left + 5, Rect.Top + 5, bm); finally FreeAndNil(bm); end; end; end; Gruß René |
Re: TstringGrid Problem
Hallo! Danke für den Tipp. Genau das habe ich gesucht!
Ich verstehe nur noch 2 sachen im quelltext nicht: <<if Sender <> NIL then with Sender as TStringGrid do>> <<Canvas.Draw(Rect.Left + 5, Rect.Top + 5, bm); finally FreeAndNil(bm); >> Kannst du mir erklären was Delphi da genau macht und für was das gut ist? Mfg Donmarkus |
Re: TstringGrid Problem
Na erstmal prüf ich, ob der Prozedur ein Sender übergeben wurde - bei manuellem Aufruf kann der fehlen, aber eigentlich kannste das auch weglassen.
Dann caste ich den Sender als TStringgrid, da Sender ja TObject ist. mit Canvas.Draw wird das Bild gemalt und finally gehört zum Create von bm, also
Delphi-Quellcode:
bm := TBitmap.Create; //Bitmap erstellen
try ... finally FreeAndNil(bm); //Zum Schluss Bitmap wieder freigeben end; |
Re: TstringGrid Problem
ok gut danke!
Wo kann ich dann angeben in welche zelle er das Bild reinmachen soll? und beim kompilieren kommt folgender fehler: [Error] Unit1.pas(71): E2250 There is no overloaded version of 'Rect' that can be called with these arguments DANKE! |
Re: TstringGrid Problem
Zitat:
Grüße Klaus |
Re: TstringGrid Problem
aha? und wie mache ich das?
|
Re: TstringGrid Problem
Zitat:
Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 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