Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Icon in ein Stringgrid zeichnen (https://www.delphipraxis.net/174363-icon-ein-stringgrid-zeichnen.html)

BBoy 18. Apr 2013 19:13

Icon in ein Stringgrid zeichnen
 
Mein DBStringGrid hat Rowselect und Multiselect an.
Ich muss in bestimmte felder Icons zeichnen, dass funktioniert auch. Aber leider muss ich dafür defaultdrawing auf false setzen und somit sind die ganzen Einstellungen (farben, selector usw) weg. Daher meine Frage, gibt es keine andere Möglichkeit icons einzuzeichnen ohne defaultdrawing zu daktivieren?
Und falls nicht, wie bekomme ich das dann mit dem selektbalken und dem multiselekt wieder hin?

Perlsau 18. Apr 2013 19:50

AW: Icon in ein Stringgrid zeichnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bei mir steht DefaultDrawing auf TRUE, während ich in DrawColumnCell das Icon anzeigen lasse. Dieses befindet sich im Feld BILD der Tabelle Einsatz; letztere "füttert" das DBGrid mit Daten.

Delphi-Quellcode:
procedure TFormMain.DBGrid_EinsatzDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
VAR
   Bild : TDBImage;

begin
   IF DatMod.Dsrc_Einsatz.DataSet.RecNo > 0 THEN
   BEGIN
      IF Column.FieldName = 'BILD' THEN
      BEGIN
         Bild             := TDBImage.Create(FormMain);
         Bild.Visible     := FALSE;
         Bild.Width       := 250;
         Bild.Height      := 250;
         Bild.Center      := TRUE;
         Bild.Proportional := TRUE;
         Bild.Stretch     := TRUE;
         Bild.DataSource  := DatMod.Dsrc_Einsatz;
         Bild.DataField   := 'BILD';

         DBGrid_Einsatz.Canvas.FillRect(Rect);
         DBGrid_Einsatz.Canvas.StretchDraw(Rect, Bild.Picture.Bitmap);

         FreeAndNil(Bild);
      END;
   END;
end;
Was ist eigentlich ein DBStringGrid? Ich verwende hier TjvDBGrid aus den Jedi-Komponenten ...

BBoy 19. Apr 2013 09:52

AW: Icon in ein Stringgrid zeichnen
 
ok danke. Dann liegt das wohl am Raize DB Grid :( Dort wird onDrawColumnCell nur ausgelöst wenn DefaultDrawing=false ist. Werde nun TcyDBAdvGrid nutzen.

Perlsau 19. Apr 2013 10:00

AW: Icon in ein Stringgrid zeichnen
 
Nach deinem ersten Post dachte ich, es ginge um DefaultDrawing und nicht um OwnerDraw. Letztgenanntes Property kenne ich nicht.

Hast du es denn einmal ausprobiert? OnDrawCell muß immer ausgelöst werden, sobald eine Zelle gezeichnet wird. Wenn eine Komponente das nicht bietet, dann ist sie meiner Ansicht nach Müll.

BBoy 19. Apr 2013 11:12

AW: Icon in ein Stringgrid zeichnen
 
Ownerdraw war ein schreibfehler )
Die Raize Komponenten nutze ich schon seit ewigkeiten und war bisher immer zufrieden damit. Aber es ist tatsächlich so, dass onDrawColumnCell nur ausgelöst wird wenn DefaultDrawing=false ist.

Wie gesagt, ich nutze jetzt das TcyDBAdvGrid und damit funktioniert alles bestens.
Muss nur noch schauen wie man die einzelnen Zeilen per Drag verschieben kann. Also Sozusagen die Reihenfolge ändert.

Perlsau 19. Apr 2013 11:14

AW: Icon in ein Stringgrid zeichnen
 
Dann ist ja alles bestens :-D

Hauptsache es funktioniert ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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