Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   dbGrid, drawColumnCell und dgRowSelect (https://www.delphipraxis.net/209574-dbgrid-drawcolumncell-und-dgrowselect.html)

Essener 23. Dez 2021 15:55

dbGrid, drawColumnCell und dgRowSelect
 
Hallo zusammen,

ich habe in einem dbGrid in den Optionen dgRowSelect aktiviert.
Im dbGridDrawColumnCell richte ich die Celle mit

Delphi-Quellcode:
  if Column.FieldName = 'Betrag' then
  begin
    Text:= dbGrid1.Fields[DataCol].AsString;
    outRect:= Rect;
    dbGrid1.Canvas.FillRect(Rect);
    drawText(dbGrid1.Canvas.Handle,Pchar(Text),length(Text),outRect,DT_Right);
  end;
rechtsbündig aus.

In der selektierten Zeile wird allerdings der ursprüngliche und der ausgerichtete Text gleichzeitig angezeigt.

Anscheinend wird beim RowSelect der Feldinhalt nach dem drawText() nochmal geschrieben?!

Wie kann ich das verhindern?

Uwe Raabe 23. Dez 2021 16:06

AW: dbGrid, drawColumnCell und dgRowSelect
 
Ändere mal das Property DefaultDrawing auf False und ergänze deinen Eventhandler um einen else-Zweig in dem du DefaultDrawColumnCell aufrufst.

Essener 23. Dez 2021 17:16

AW: dbGrid, drawColumnCell und dgRowSelect
 
Ok, habe im Objektinspektor DefaultDrawing auf false gesetzt.

Im Eventhandler
Delphi-Quellcode:
  if Column.FieldName = 'Betrag' then
  begin
    Text:= dbGrid1.Fields[DataCol].AsString;
    outRect:= Rect;
    dbGrid1.Canvas.FillRect(Rect);
    drawText(dbGrid1.Canvas.Handle,Pchar(Text),length(Text),outRect,DT_Right);
  end
  else
  dbGrid1.DefaultDrawColumnCell(outRect,DataCol,Column,State);
den else Zweig hinzugefügt. Ohne Erfolg.
Habe ich da etwas falsch verstanden oder ausgeführt?

Uwe Raabe 23. Dez 2021 22:42

AW: dbGrid, drawColumnCell und dgRowSelect
 
Beim Aufruf von DefaultDrawColumnCell musst du Rect verwenden anstatt outRect.


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