![]() |
Umgang mit ComboBox
Hallo Delphianer :-D
Ich programmiere derzeit an einem Quiz und meine Kenntnisse reichen mal wieder nicht aus :? Also, folgendes Problem... Ich habe einen Array für die 16 Bundesländer von Deutschland, und die Länder werden per Zufallsgenerator ausgegeben.
Delphi-Quellcode:
Die Variable Land hat also einen Wert von 0 bis 15 und diesen möchte ich in Verbindung einer Combobox nutzen. In dieser Combobox sind die Werte(Items) von 0-15 den Bundesländern mit der jeweils richtigen Stadt zugeordnet.
procedure TForm1.Laenderauswahl;
begin Randomize; //Alle 16 Bundesländer Laender[0] := 'Baden-Württemberg'; Laender[1] := 'Bayern'; Laender[2] := 'Saarland'; Laender[3] := 'Rheinland-Pfalz'; Laender[4] := 'Hessen'; Laender[5] := 'Thüringen'; Laender[6] := 'Sachsen'; Laender[7] := 'Nordrhein-Westfalen'; Laender[8] := 'Niedersachsen'; Laender[9] := 'Sachsen-Anhalt'; Laender[10] := 'Brandenburg'; Laender[11] := 'Berlin'; Laender[12] := 'Bremen'; Laender[13] := 'Hamburg'; Laender[14] := 'Schleswig-Holstein'; Laender[15] := 'Mecklenburg-Vorpommern'; Land := Random(16); Panel3.Caption := ' ' + Laender[Land]; end; Bsp: Laender[1] beinhaltet Bayern und in der Combobox ist bei Item 1 München.... Nun möchte ich dem Benutzer helfen, sobald er zwei mal hintereinander die falsche Stadt über die Combobox ausgewählt hat, indem ich ihm die richtige Antwort auf einem Panel ausgebe. Wie stelle ich nun eine Verbindung zwischen der Variable "Land", welche ja den Integer 0-15 beinhaltet, zur richtigen Stadt in der Combobox her ?
Delphi-Quellcode:
Ich hoffe ihr versteht was ich meine, wenn nicht einfach nochmal fragen...
panel4.Caption:='Die gesuchte Stadt war '+ComboBox1.........???
gruß Tobias :-D |
Re: Umgang mit ComboBox
Hallo,
Delphi-Quellcode:
Ich weiss nicht, ob ich Dich richtig verstanden habe, wenn nicht -> einfach nochmal fragen :mrgreen:
ComboBox1.Items.Strings[x]
Edit: x ist natürlich der Index des korrekten Landes aus Deinem Array bzw. der Wert Deiner Variablen 'Land' Edit2: Aber warum übergibst Du ihm denn nicht einfach gleich als Lösung den entsprchenden Wert Deines Arrays? |
Re: Umgang mit ComboBox
Zitat:
Bin offen für eine Vereinfachung meines Problems ... :) Auf jeden Fall funktioniert
Delphi-Quellcode:
Danke dafür :P
ComboBox1.Items.Strings[x]
gruß Tobias |
Re: Umgang mit ComboBox
Zitat:
Du könntest natürlich ein zweidimensionales Array basteln, in welchem Du sowohl das Bundesland, als auch die dazu gehörige Landeshauptstadt speicherst. Anschliessend könntest Du Deine Combobox mit den Werten aus Deinem Array füllen. Das hätte den Vorteil, dass Du nur Dein Array erweitern müsstest, wenn wir dann irgendwann mal..... ach, das war ein anderes Thema :mrgreen: Jedenfalls müsstest Du die grundlegenden Daten dann nur in Deinem Array pflegen, und nicht zusätzlich noch in der Combobox. Aber für eine exaktere Aussage kenne ich Deine Struktur zu wenig. |
Re: Umgang mit ComboBox
Ich würde die Bundesländer und ihre Hauptstädte in einem Record speichern (dafür eine Klasse zu bauen, halte ich für übertrieben). Etwa so (ungetestet, da kein Delphi zur Hand):
Delphi-Quellcode:
//Edit: Rächtschraipfeeler berrichticht
type TLand = record
Name, Hauptstadt: string; end; var Laender: array[0..15] of TLand; //nur als Beispiel, ein privates Feld des Formulars wäre besser ... procedure InitLaender; begin Laender[0].Name := 'Bayern'; Laender[0].Hauptstadt := 'München'; Laender[1].Name := 'Schleswig-Holstein'; Laender[1].Hauptstadt := 'Kiel'; ... end; ... procedure Antwort; begin ShowMessage(Laender[x].Hauptstadt; //x ist der ermittelte Zufallswert end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz