Der Titel ist nicht ganz passend gewählt, ich muss das erklären...
Hallo,
mein Programm besitzt u.a. 2 ComboBoxen. In einer wählt man eine Disziplin aus (z.B. Schwimmen). Dahinter befindet sich eine ComboBox in der man den Trainingsinhalt auswählt (z.B. '3km'). Jetzt soll mein Programm andere Felder ergänzen (2 Felder, einmal beim Edit 'Schwimmen - km' die Kilometer Anzahl und einmal beim Edit 'Umfang des Extensiven Trainings' ebenfalls die km). Das habe ich bisher so gelöst:
Delphi-Quellcode:
if AnsiSameText(ComboDis.Text, 'Schwimmen') then //Überprüfen ob schwimmen, denn es gibt ja z.B. noch Fahrrad, etc.
begin
if (AnsiSameText(ComboContent.Text, '3km')) or (AnsiSameText(ComboContent.Text, '2x1,5km')) then //or 3x1km or ...
begin
ComboSkm.Text := '3'; //Schwimmen Kilometer
ComboExAkm.Text := '3'; //Extensives Ausdauertraining (ExA) Kilometer
end;
{Das ganze noch für diverse ander Disziplinen und Distanzen}
end;
Seht ihr mein Problem? Ich muss für jede Distanz einen einzelnen "if .. or .. then" hinzufügen. Mit der Zeit wird das jedoch unübersichtlich und umständlich, denn 3km kann man auf 1000 verschiedene weisen schwimmen (10x300m, 100x30m, 2x1km, etc.). Und das nun noch für sehr viele andere Disziplinen wie Fahrrad fahren, Laufen, etc. Jetzt suche ich eine Möglichkeit das ganze zu vereinfachen, habe jedoch nichts passendes gefunden.
Ich habe mir das ungefährso vorgestellt:
Ich habe eine Art Liste. Die heißt z.B. "SchwimmenListe3km". Hier trage ich jetzt alle Möglichkeiten ein (3km, 10x300m, 100x30m, 2x1km, etc.). Jetzt muss ich im Prinzip die Liste nach ihren Items abfragen:
Delphi-Quellcode:
if AnsiSameText(ComboContent.Text, SchwimmenListe3km.Items) then
begin
ComboSkm.Text := '3'; //Schwimmen Kilometer
ComboExAkm.Text := '3'; //Extensives Ausdauertraining (ExA) Kilometer
end;
Ich hoffe ich habe mich annährend verständlich ausgedrückt, wie ich mir das vorstelle :S Habt ihr sowas ähnliches schonmal gemacht?
Lukas