Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Grid mit Bild in der Zeile (https://www.delphipraxis.net/101677-grid-mit-bild-der-zeile.html)

Lill Jens 17. Okt 2007 09:52

Datenbank: Paradox • Version: 7 • Zugriff über: BDE

Grid mit Bild in der Zeile
 
Moin DP'ler!

Ist es möglich ein Bild in einer Grid Zeile anzuzeigen?

http://img147.imageshack.us/img147/6...enannt1yc9.jpg

Lill Jens :coder2:

QuickAndDirty 17. Okt 2007 10:08

Re: Grid mit Bild in der Zeile
 
Ja ist es. überschreibe die DrawCell Methode und male bei Bedarf ein Bild aufs canvas in das in die Methode übergebene TRECT.

Lill Jens 17. Okt 2007 10:14

Re: Grid mit Bild in der Zeile
 
Zitat:

Zitat von QuickAndDirty
Ja ist es. überschreibe die DrawCell Methode und male bei Bedarf ein Bild aufs canvas in das in die Methode übergebene TRECT.

Wenn das funzt wär ja super allerdings hab ich noch nie eine Methode überschrieben?! weis net wie des geht?!

_frank_ 17. Okt 2007 10:17

Re: Grid mit Bild in der Zeile
 
sicher, wie fast in jedem control per OwnerDraw (OnDrawCell in dem Fall), einfach mal danach suchen :)
musst dir nur überlegen, wie du das bild in der zelle hältst bzw. wenn damit nur ein status angezeigt wird, würde ich den status als integer-wert ins Object-Feld der Zelle hauen und im OnDrawCell diesen wert auwerten und entsprechend das bild malen/kopieren.

wozu überschreiben, es gibt doch ein event...

HTH Frank

Lill Jens 17. Okt 2007 10:41

Re: Grid mit Bild in der Zeile
 
Zitat:

Zitat von _frank_
sicher, wie fast in jedem control per OwnerDraw (OnDrawCell in dem Fall), einfach mal danach suchen :)
musst dir nur überlegen, wie du das bild in der zelle hältst bzw. wenn damit nur ein status angezeigt wird, würde ich den status als integer-wert ins Object-Feld der Zelle hauen und im OnDrawCell diesen wert auwerten und entsprechend das bild malen/kopieren.

wozu überschreiben, es gibt doch ein event...

HTH Frank

Mhh da steig ich net durch naja okay aber trotzdem thx für die antworten

_frank_ 17. Okt 2007 12:57

Re: Grid mit Bild in der Zeile
 
z.b. für den fall das das icon für einen Status steht, schreibst du den statuswert beim einlesen der Daten in das Objectsfeld (Stringgrid1.objects[0,row]). die Bitmaps erzeugst du am besten im formcreate (im formdestroy gibst du sie wieder frei). im OnDrawCell prüfst den Objects-wert auf deine werte und malst dementsprechend das Bitmap.

so in etwa stell ich mir die OnDrawCell-Methode vor:

Delphi-Quellcode:
Stringgrid1.Canvas.Fillrect(rect);
if col=0 then //nur erste spalte mit bitmap füllen
begin
  case Integer(Objects[0,row]) of //das Objects-Feld auswerten, was beim einlesen auf den status gesetzt wurde
    1:stringgrid1.Canvas.Draw(rect.left,rect.top,bmp1); //hier halt das passende bitmap malen
    2:stringgrid1.Canvas.Draw(rect.left,rect.top,bmp2);
    ...
  end;
end else
begin //bei den anderen nur den text hinpinseln
  Stringgrid1.Canvas.Textout(rect.left+4,rect.top+2,Cells[col,row]);
end;
HTH Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz