Einzelnen Beitrag anzeigen

ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

Items aus einer Liste abfragen

  Alt 21. Feb 2012, 11:50
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
Lukas
  Mit Zitat antworten Zitat