Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: String Entscheidungen mit case treffen!!!

  Alt 5. Apr 2006, 12:18
Zuallererst würde ich den Label1, Label2 etc. Komponenten etwas bessere Namen geben, zumal Du von Übersichtlichkeit und Lesbarkeit redest.
Anschließend würde ich statt der '0','1' etc. im CASE Konstanten definieren:
Delphi-Quellcode:
Const
  liUebersicht = 0; // li = Label Index
  liKunden = 1;
...
Dann würde ich im FormCreate-Ereignis den Tag-Eigenschaften der Label-Komponenten diese Konstanten zuweisen:
Delphi-Quellcode:
Procedure TMyForm.FormCreate (Sender : TObject);
Begin
  lbKunden.Tag := liKunden;
  lbUebersicht.Tag := liUebersicht;
...
End;
Und dann über die Tag-Eigenschaft der Komponente das Case realisieren.
Delphi-Quellcode:
Case TLabel(Sender).Tag Of
  liKunden : Begin
    ...
    End;
  liUebersicht : Begin
    ...
    End;
End;
Übersichtlicher (und vor allen Dingen: Nachvollziehbarer) würde ich das nicht hinbekommen.
Der Nachteil der Stringvergleiche ist ganz klar, das dein Programm wegschmiert, sobald jemandem die Beschriftung nicht passt und er die SW patcht. So, wie das lokalisierende Programme machen. Die Captions stehen in den Resourcen, werden also übersetzt. Die Stringkonstanten stehen aber im Code und werden deshalb ignoriert.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat