Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: subroutine laeuft nur auf dem entwickler-pc

  Alt 26. Jan 2014, 22:18
Die Rechtschreibregeln gelten für alle Nutzer!
Und ich dachte immer, wer auf Rechtschreibfehler aufmerksam macht bzw. diese moniert, hat sonst nichts zu sagen.

Zum Code:
Theoretisch kann die Datenbank auch ' ' anstatt '' enthalten, sodaß der Vergleich auf '' eben fehlschlägt.

Du hast fürchterlich viel Redundanz in deinem Code, also Codestellen, die das gleiche machen, nur mit anderen Parametern. Das ist grausam und fehleranfällig (wie man sieht). Kürze das zusammen.

Delphi-Quellcode:
Procedure AdjustLedText (ledLabel : TLabel)
Begin
  if ledLabel.Text = 'then begin
    ledLabel.ReadOnly := false;
    ledLabel.Color := clWindow;
  end
  else begin
    ledLabel.ReadOnly := true;
    ledLabel.Color := clInfoBk;
  end
end;
Aufruf dann:
Delphi-Quellcode:
AdjustLedText(led1);
AdjustLedText(led2);
...
AdjustLedText(ledn);
Und wenn Du ganz pfiffig bist, packst Du alle 'ledx'-Labgel in ein Array und ...
Delphi-Quellcode:
if DateIsInThePast() then
  for led in ledLabel do
    AdjustLedText(led);
Ach und bei diesem 'DateIsInThePast()' weiß man ja, was es machen soll (geht aus dem Namen hervor).

Durch Refactoring eliminierst Du Fehler im Code, der sich eigentlich identisch verhalten soll. In deinem Fall wäre das ja so: Der Fehler kann also *nur* in den Daten liegen (Datum, ' ' statt '' etc.)

Übrigens: Irgendwie ist jeder Newbie. Irgendwie.
  Mit Zitat antworten Zitat