Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.326 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: bessere lösung für prozeduren

  Alt 29. Okt 2011, 09:42
Theoretisch geht es auch so:
Delphi-Quellcode:
  private
    type
      TLabelMode = (lmCustomerNumber, lmArticleNumber, lmBillNumber, lmOrderNumber, lmName);
    procedure SetSearchLabels(const ALabelMode: TLabelMode);

// ...

procedure TTblLieferanten.SetSearchLabels(const ALabelMode: TLabelMode);
const
  LabelCaptions: array[TLabelMode, 0..3] of string = (
    ('1 = Name', '2 = Kunden Nr.', '', ''),
    ('1 = Name', '3 = Artikel Nr.', '6 = Bezeichnung', '7 = Lieferanten'),
    ('2 = Kunden Nr.', '5 = Rechnungs Nr.', '', ''),
    ('1 = Name', '2 = Kunden Nr.', '4 = Auftrags Nr.', ''),
    ('1 = Name', '', '', '')
  );
  ComboContents: array[TLabelMode] of string = (
    '1'#13#10'2', '1'#13#10'3'#13#10'6'#13#10'7', '2'#13#10'5', '1'#13#10'2'#13#10'4', '1'
  );
begin
  Label10.Caption := LabelCaptions[ALabelMode][0];
  Label11.Caption := LabelCaptions[ALabelMode][1];
  Label13.Caption := LabelCaptions[ALabelMode][2];
  Label14.Caption := LabelCaptions[ALabelMode][3];
  ComboBox2.Items.Text := ComboContents[ALabelMode];
  ComboBox2.ItemIndex := 0;
end;

procedure TTblLieferanten.ComboBox3Change(Sender: TObject);
begin
  setSearchLabels(TLabelMode(ComboBox3.ItemIndex));
end;
Besser wäre es aber erstens die Komponenten ordentlich zu bezeichnen statt so ein Messie-Formular zu benutzen.

Und zweitens wäre es sinnvoller die Bezeichnungen usw. mit der Funktionalität kombiniert in eigene Klassen zu stecken. Dan können die verschiedenen Suchklassen von einer Elternklasse abgeleitet werden und es muss nur die entsprechende abgeleitete Klasse jeweils benutzt werden. Das macht es sehr viel übersichtlicher.

// EDIT:
Wo war der rote Kasten? Da steht ja schon eine ähnliche Lösung (die ich allerdings für unnötig unübersichtlich halte).
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke (29. Okt 2011 um 09:44 Uhr)
  Mit Zitat antworten Zitat