![]() |
Delphi-Version: 2006
Problem mit ComboBox
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich programmiere zu Zeit eine Punktekreditkarte (siehe Anhang ). Die Punktwerte soll der Benutzer in ein Stringgrid eingeben ( funktioniert auch ). Die Fächer sollen mit Hilfe von Comboboxen ausgewählt werden (funktioniert bis dahin auch ) nun zu meinen Problem/ Frage: Wenn in der Combobox für 1.Fremdsprache zum Beispiel "Englisch" gewählt wird , soll in der Combobox für die 2. Fremdsprache und in der Combobox als zusätzliches Wahlfach Englisch nicht mehr zur Auswahl stehen Hier wäre mein Quelltext if ComboBox1.Text = 'Englisch' then begin ComboBox7.Items.Delete(ComboBox7.Items.IndexOf('En glisch')); ComboBox9.Items.Delete(ComboBox9.Items.IndexOf('En glisch')); end else if ….. Das funktioniert aber leider so nicht bzw. funktioniert nicht für beide Comboboxen (für combobox 7 funktioniert es) Ich habe Rechtschreibung überprüft und auch keine weiteren Eigenschaften der comboxen verändert. Wäre für schnelle Hilfe dankbar M.f.g. Felix |
AW: Problem mit ComboBox
Hi ertmal willkommne in der DP! :dp:
Bevor irgendwas anderes. Wenn du hier Delphi-Quelltext postest, dann benutzte bitte die Delphi-Tags. Das ist der kleine Helm oben mit dem roten Kranz... :D Also, warum das nicht funktioniert wird mir nicht ganz klar. Bist du sicher dass das 'En glisch' geschrieben werden soll? Ansonsten, veränderst du den Inhalt von Combobox 9 wo anders noch? Vielleicht hast du da was gegensätzliches geschrieben, dass Englisch entfernt aber beim nächsten Klick wieder hinzugefügt wird? Ansonsten ncohmal ein bisschen mehr Quelltext posten. LG; hans ditter |
AW: Problem mit ComboBox
Danke für die schnelle Antwort!
Ja das soll schon 'Englisch' heißen ist aber in meinen Programm richtig geschireben:-D
Delphi-Quellcode:
Im Moment wird sonst nichts weiter an den Comboboxen verändert.
procedure TForm1.ComboBox1Change(Sender: TObject);
begin if ComboBox1.Text = 'Latein' then begin ComboBox7.Items.Delete(ComboBox7.Items.IndexOf('Latein')); Combobox9.Items.Delete(Combobox9.Items.IndexOf('Latein')); end else if ComboBox1.Text = 'Französisch' then begin ComboBox7.Items.Delete(ComboBox7.Items.IndexOf('Französisch')); ComboBox9.Items.Delete(ComboBox9.Items.IndexOf('Französisch')); end else if ComboBox1.Text = 'Russisch' then begin ComboBox7.Items.Delete(ComboBox7.Items.IndexOf('Russisch')); ComboBox9.Items.Delete(ComboBox9.Items.IndexOf('Russisch')); end else if ComboBox1.Text = 'Englisch' then begin ComboBox7.Items.Delete(ComboBox7.Items.IndexOf('Englisch')); ComboBox9.Items.Delete(ComboBox9.Items.IndexOf('Englisch')); end; end; Und wie gesagt, habe schon mehrmals die Rechtschreibung überprüft. Hab schon einige andere Leute gefragt, die mir allerdings auch nicht helfen konnten. (Selbst mein Informatiklehrer weiß nicht an was das liegen könnte) L.g. Felix |
AW: Problem mit ComboBox
Sind bei Dir die Einrückungen auch etwas verquer? Dann würde ich das mal korrigieren (liest sich besser).
Kann Dein Problem an Groß/Kleinschreibung liegen? Grundsätzlich kannst Du es sicher auch einkürzen:
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin ComboBox7.Items.Delete(ComboBox7.Items.IndexOf(ComboBox1.Text)); Combobox9.Items.Delete(Combobox9.Items.IndexOf(ComboBox1.Text)); end |
AW: Problem mit ComboBox
Stimme Stahli voll zu - das müsste Dein Problem lösen, auch wenn ich es jetzt nicht unter D2006 getestet habe.
Ganz schnell hingetippt: Hier hast Du drei Möglichkeiten, von denen doch mindestens eine verwendbar sein müsste (die obige ist auch dabei). Drei ComboBoxen - ein Eintrag gewählt - löscht den betreffenden Eintrag aus allen drei Listen...
Delphi-Quellcode:
Es ist immer vernünftig, wann immer möglich bei ListBox und ComboBox auf die Original-Einträge zurückzugreifen. Dadurch haben kleinere oder größere Unstimmigkeiten keine Chance, Unfug zu erzeugen, selbst 'En glisch' nicht! Könnte es sein, dass in der String-Liste für eine Deiner ComboBoxen 'Englisch ' steht?
procedure TForm1.ComboBox1Click(Sender: TObject);
var choice: byte; ctext: string; begin choice := ComboBox1.ItemIndex; ctext := ComboBox1.Text; ComboBox1.Items.Delete(choice); choice := ComboBox2.Items.IndexOf(ctext); ComboBox2.Items.Delete(choice); choice := ComboBox3.Items.IndexOf(ctext); ComboBox3.Items.Delete(choice); end; procedure TForm1.ComboBox2Click(Sender: TObject); var ctext: string; choice: byte; begin choice := ComboBox2.ItemIndex; cText := ComboBox2.Items[choice]; ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(ctext)); ComboBox3.Items.Delete(ComboBox3.Items.IndexOf(ctext)); ComboBox2.Items.Delete(choice); end; procedure TForm1.ComboBox3Click(Sender: TObject); begin ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(ComboBox3.Text)); ComboBox2.Items.Delete(ComboBox2.Items.IndexOf(ComboBox3.Text)); ComboBox3.Items.Delete(ComboBox3.Items.IndexOf(ComboBox3.Text)); end; LG, Günther |
AW: Problem mit ComboBox
Guten Tag,
ich bin Delphi Anfängerin und möchte eine ComboBox füllen mit allen Sternzeichen, sodass man sein Sternzeichen auswählt und das denn sozusagen 'eingeloggt' ist. Meine Frage ist nun, wie fülle ich die ComboBox und wie kann man ein Item auswählen? Hier mein Versuch :)
Code:
Schon mal vielen Dank für die Hilfe!
procedure TForm1.cb_sternzeichenChange(Sender: TObject);
begin cb_sternzeichen.AddItem('Wassermann':String;AObject:TObject); end; |
AW: Problem mit ComboBox
Du hast wohl den etwas falschen Ansatz.
Du kannst einfach zur Entwicklungszeit (also wenn Du Dein Formular aufbaust) im Objektinspektor in ComboBox.Items Deine Wasserzeichen eintragen. Zu Laufzeit kannst Du dann ermitteln, welchen Eintrag der User gewählt hat. |
AW: Problem mit ComboBox
ComboBox.AddItem brauchst du auch nur, wenn du zu deinen Einträgen Objekte verlinken willst. Ansonsten nimm ComboBox.Items.Add. Über ComboBox.ItemIndex bekommst du den aktuell gewählten Eintrag.
|
AW: Problem mit ComboBox
Übrigens darfst Du auch gerne eigene Threads erstellen und musst keine fremden kapern ;)
|
AW: Problem mit ComboBox
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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