Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Mengenvariable aus Combobox setzen.
Wolff68 - Mi 17.07.02 20:28
Titel: Mengenvariable aus Combobox setzen.
Ich habe eine Variable eines Mengentyps. Nun möchte ich gerne diese Variable aus einer Combobox heraus setzen. Wie mach ich das am einfachsten?
Hier mal der Code.
Die Strings in der ModeBox heisen natürlich auch Rot, Gruen,... wobei es auch nett wäre diese Einträge aus der Menge heraus zu füllen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| type TMode = (Rot, Gruen, Blau, Gelb, Weiss, Schwarz); TForm1 = class(TForm) ModeBox: TComboBox; procedure ModeBoxChange(Sender: TObject); ... public Mode : TMode; end;
var Form1: TForm1;
implementation
procedure TForm1.ModeBoxChange(Sender: TObject); begin // hier soll nun je nach Auswahl der Wert von Mode geändert werden end;
end. |
Eventuell bin ich auch total auf dem Holzweg und es gibt eine viel einfachere Lösung. Ich will das ganze später vielleicht mal in eine Komponente einbauen, wobei Mode dann eine Eigenschaft werden soll.
Ich hab diese Art der Menge übrigends aus einer Komponente. Kenn mich aber mit Mengen selber nicht so gut aus :oops:
Kommt nämlich gleich die nächste Frage, wie ich den Wert von Mode in einer If oder Case verwende... :oops: :oops:
DaSurv - Do 18.07.02 03:49
Ich hab´s nicht ganz verstanden, aber ich biete dir halt mal einen Alternativvorschlag:
Ich habe Die Farben vorher als Items in die ComboBox eingetragen und habe
Farbe zu einer Eigenschaft von deiner Klasse TMode gemacht.
(Du kannst ja später die
vordefinierten Farben aus einer Datei, zum Beispiel farben.ini in die ComboBox einlesen!). Also nun meine Vorstellung:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| type TMode = class Farbe: String;
...
var Form1: TForm1; Mode: TMode;
...
procedure TForm1.ModeBoxChange(Sender: TObject); begin Mode := TMode.Create; Mode.Farbe := ModeBox.Text; end; |
P.S. Wenn du nicht willst, dass der Benutzer selber Werte in die ComboBox eintragen kann, dann kannst du ja die Eigenschaft Style, der ComboBox auf csDropDownList setzen!!!
DaSurv
Code-Tags hinzugefügt. Tino
Klabautermann - Do 18.07.02 09:18
Hallo,
1. Ich sehe in deinem Code keinen Mengentyp, daher gehe ich davon aus, du meinst den Aufzählungstyp tMode.
2. Besonders einfach wird das dann, wenn du sicherstellen kannst, das die Reihenfolge und Anzahl, in der Liste der Combobox, die selbe ist wie im Typen. Dann kannst du das nämlich so machen:
Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.ModeBoxChange(Sender: TObject); begin IF ModeBox.ItemIndex > -1 THEN Mode := tMode(ModeBox.ItemIndex); end; |
Gruß
Klabautermann
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!