AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CRDBGrid Zeile färben

Ein Thema von strom · begonnen am 6. Mär 2016 · letzter Beitrag vom 6. Mär 2016
Antwort Antwort
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#1

CRDBGrid Zeile färben

  Alt 6. Mär 2016, 11:37
Datenbank: mysql • Version: mariadb • Zugriff über: mydac
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 = 'Systemthen begin
    CRDBGrid1.Canvas.Brush.Color := clblack;
    CRDBGrid1.Canvas.Font.Color := cllime;
  end else if Wert = 'Testthen begin
    CRDBGrid1.Canvas.Brush.Color := clFuchsia;
    CRDBGrid1.Canvas.Font.Color := clblack;
   end else if Wert = 'Buttonthen begin
    CRDBGrid1.Canvas.Brush.Color := cllime;
    CRDBGrid1.Canvas.Font.Color := clblack;
   end else if Wert = 'Terminthen begin
    CRDBGrid1.Canvas.Brush.Color := clAqua;
    CRDBGrid1.Canvas.Font.Color := clblack;
   end else if Wert = 'Unwetterthen begin
    CRDBGrid1.Canvas.Brush.Color := clWhite;
    CRDBGrid1.Canvas.Font.Color := clNavy;
   end else if Wert = 'Geschlossenthen begin
    CRDBGrid1.Canvas.Brush.Color := clgreen;
    CRDBGrid1.Canvas.Font.Color := clblack;
   end else if Wert = 'Alarmiertthen 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;
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#2

AW: CRDBGrid Zeile färben

  Alt 6. Mär 2016, 11:55
hallo,

Das ist ja mal interessant
Delphi-Quellcode:
  
begin
if (CRDBGrid1.DataSource.DataSet.RecordCount = 0) then
   begin
     Exit;
...
  end;
end;
Wenn gleich Null dann tun nix, ansonsten tun auch nix


mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: CRDBGrid Zeile färben

  Alt 6. Mär 2016, 12:14
Hinter'm Exit; fehlt ein end; , dafür ist das vorletzte end; zuviel.
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#4

AW: CRDBGrid Zeile färben

  Alt 6. Mär 2016, 12:30
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 begin end; klammern würde, kann ich nicht behaupten. Dann würde ich einfach nur das exit; nehmen.

Punkt 3 : Grundsätzlich würde ich immer versuchen so zu programmieren, dass ich auf ein exit; ganz verzichten kann. Ein exit; kommt einem goto zumindest schon sehr nahe. Ich würde also stattdessen die Logik umdrehen und dann lieber schreiben
Delphi-Quellcode:
if (CRDBGrid1.DataSource.DataSet.RecordCount > 0) then
begin
     //und hier eben kein exit
mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
190 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: CRDBGrid Zeile färben

  Alt 6. Mär 2016, 13:31
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.
Thomas Forget
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 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