![]() |
Datenbank: mysql • Version: mariadb • Zugriff über: mydac
CRDBGrid Zeile färben
hallo,
was ist hier falsch? Es ändert sich nichts!
Delphi-Quellcode:
procedure TForm1.CRDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState); var Wert: string; begin if (CRDBGrid1.DataSource.DataSet.RecordCount = 0) then begin Exit; Wert := EventQuery.FieldByName('STATUS').Value; if Wert = 'System' then begin CRDBGrid1.Canvas.Brush.Color := clblack; CRDBGrid1.Canvas.Font.Color := cllime; end else if Wert = 'Test' then begin CRDBGrid1.Canvas.Brush.Color := clFuchsia; CRDBGrid1.Canvas.Font.Color := clblack; end else if Wert = 'Button' then begin CRDBGrid1.Canvas.Brush.Color := cllime; CRDBGrid1.Canvas.Font.Color := clblack; end else if Wert = 'Termin' then begin CRDBGrid1.Canvas.Brush.Color := clAqua; CRDBGrid1.Canvas.Font.Color := clblack; end else if Wert = 'Unwetter' then begin CRDBGrid1.Canvas.Brush.Color := clWhite; CRDBGrid1.Canvas.Font.Color := clNavy; end else if Wert = 'Geschlossen' then begin CRDBGrid1.Canvas.Brush.Color := clgreen; CRDBGrid1.Canvas.Font.Color := clblack; end else if Wert = 'Alarmiert' then begin CRDBGrid1.Canvas.Brush.Color := clWhite; CRDBGrid1.Canvas.Font.Color := clred; end else begin CRDBGrid1.Canvas.Brush.Color := clblack; CRDBGrid1.Canvas.Font.Color := clwhite; end; CRDBGRid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end; |
AW: CRDBGrid Zeile färben
hallo,
Das ist ja mal interessant
Delphi-Quellcode:
Wenn gleich Null dann tun nix, ansonsten tun auch nixbegin if (CRDBGrid1.DataSource.DataSet.RecordCount = 0) then begin Exit; ... end; end; mfg |
AW: CRDBGrid Zeile färben
Hinter'm
Delphi-Quellcode:
fehlt ein
Exit;
Delphi-Quellcode:
, dafür ist das vorletzte
end;
Delphi-Quellcode:
zuviel.
end;
|
AW: CRDBGrid Zeile färben
hallo,
also mal Punkt 1 : Zuerst mal sollte man seinen Quellcode entsprechend einrücken, dann würden solche Fehler einen sofort ins Gesicht springen. Neuere Delphi-Varianten bieten mittlerweile eine automatische Codeformatierung, ich musste das früher alles noch per Fuss formatieren. Punkt 2 : Ob ich ein Exit unbedingt in ein
Delphi-Quellcode:
begin
Delphi-Quellcode:
klammern würde, kann ich nicht behaupten. Dann würde ich einfach nur das
end;
Delphi-Quellcode:
nehmen.
exit;
Punkt 3 : Grundsätzlich würde ich immer versuchen so zu programmieren, dass ich auf ein
Delphi-Quellcode:
ganz verzichten kann. Ein
exit;
Delphi-Quellcode:
kommt einem
exit;
Delphi-Quellcode:
zumindest schon sehr nahe. Ich würde also stattdessen die Logik umdrehen und dann lieber schreiben
goto
Delphi-Quellcode:
mfg
if (CRDBGrid1.DataSource.DataSet.RecordCount > 0) then
begin //und hier eben kein exit |
AW: CRDBGrid Zeile färben
Na ja, nicht nur ein "Exit" bedingt einen Jump ... wenn die erste Bedingung (..RecordCount = 0) erfüllt ist muss er nun mit oder ohne Exit bis hinter´s letzte end vor dem Prozedur-Aussprung jumpen. Ich finde das Exit insofern ganz gut, weil ich sprachlich genau anzeigt, was passieren soll.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 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