Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Dbgrid (https://www.delphipraxis.net/212416-dbgrid.html)

gerrykla 7. Feb 2023 11:32

Datenbank: SQLite • Version: 3.3 • Zugriff über: dbexpress

Dbgrid
 
Hallo !

Ich bringe es nicht fertig eine Boolesische variable im dbgrid nur für die Anzeige zu verändern.
Klartext aus True False z.b. ok oder offen. habe schon mit dem GridEreigniss ondrawcolumncell herumgebastelt, aber leider ....

Delphi-Quellcode:
               
if dbgrid1.DataSource.DataSet.FieldbyName('STATUS_ok').asString = '0' then
begin
  fillRect(rect);
  dbgrid1.Canvas.Font.height := -14;
  dbgrid1.Canvas.TextRect(Rect, Rect.Left + 3, Rect.Top + 2,'offen');
end
else
begin
  fillRect(rect);
  dbgrid1.Canvas.Font.height := -14;
  dbgrid1.Canvas.TextRect(Rect, Rect.Left + 3, Rect.Top + 2,'erl.');                          
end;
das funktioniert leider nicht ... sonst müsste ich es in einem stringgrid machen, was andere nachteile hat.

Uwe Raabe 7. Feb 2023 11:46

AW: Dbgrind
 
Das sollte mit einem entsprechenden Event im OnGetText und OnSetText des Fields machbar sein.

himitsu 7. Feb 2023 11:47

AW: Dbgrind
 
Sowas macht man auch nicht, einfach so auf fremden Canvas rumzumalen.

TDataSet und TField, sowie die Columns von "ordentliche" Grid-Komponenten, haben Events für DisplayText, z.B. OnGetText.
Darin kannst du die Anzeige ändern.


Bzw., sowas kann man auch über CalcFields lösen, sowie über berechnete Felder im SQL.


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