![]() |
Teilbereich von Enum in Combobox und zurück
Ein Hallo in die Runde.
Gegeben sei ein Enum
Delphi-Quellcode:
Dieses soll in eine Combobox übertragen werden (kein Problem), aber auf einem 32 Bit System müssen die beiden auf "64" endenen Einträge ausgelassen werden (auch noch kein Problem). Nun aber wird's kompliziert, und da hänge ich im Moment. Der Nutzer soll einen Eintrag aus der Combobox auswählen können, d.h. ich brauche einen Weg, um von der Combobox wieder zurück zum Enum zu kommen, und zwar unter Berücksichtigung der Auslassung einzelner Einträge. Ohne Auslassung wäre das ja kein Ding, es gibt ja ItemIndex, der dem Ordinaltyp des Enums entspricht. Aber was mache ich mit der Auslassung?
type
TStartupLocation = (slRegRunCommon32, slRegRunCommon64, slRegRunOnceCommon32, slRegRunOnceCommon64, slRegRunUser, slRegRunOnceUser, slSMCommon, slSMUser ); Bisher hab ich nur die Idee, die beiden 64er ans Ende des Enums zu schieben, damit das "Mapping" mit dem ItemIndex funktioniert. Gibt's da andere Möglichkeiten? Über die Strings zu geben, wird übrigens ebenfalls schwierig, weil selbige vor dem Eintragen in die Combobox übersetzt werden (je nach ausgewählter Sprache). MfG Dalai |
AW: Teilbereich von Enum in Combobox und zurück
Lege doch den urspünglichen Wert in Objects ab.
|
AW: Teilbereich von Enum in Combobox und zurück
Mmh, das funktioniert in der Tat. Allerdings ist der Aufwand größer als ich dachte, denn man muss eine Klasse deklarieren, das Objekt erzeugen, in die Items aufnehmen und hinterher auch wieder abräumen. Zudem muss man die Items durchlaufen, um einen Eintrag der Combobox programmatisch auszuwählen. Daher hab ich mich entschieden, sie doch ans Ende zu schieben. So spare ich mir die Arbeit und kann ItemIndex benutzen.
Danke dennoch für die Anregung! MfG Dalai |
AW: Teilbereich von Enum in Combobox und zurück
Man kann auch böstillig billig den Typen nach TObject/Pointer casten. :angle:
Es wird nirgendwo geprüft, ob es ein echtes Objekt ist. In Delphi ist es als TObjekt deklariert, der WinAPI ist der Typ egal. ![]() |
AW: Teilbereich von Enum in Combobox und zurück
Diese Lösung würde ich als praktisch und nicht als billig ansehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 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