AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Teilbereich von Enum in Combobox und zurück
Thema durchsuchen
Ansicht
Themen-Optionen

Teilbereich von Enum in Combobox und zurück

Ein Thema von Dalai · begonnen am 7. Mai 2015 · letzter Beitrag vom 9. Mai 2015
Antwort Antwort
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#1

Teilbereich von Enum in Combobox und zurück

  Alt 7. Mai 2015, 12:08
Ein Hallo in die Runde.

Gegeben sei ein Enum
Delphi-Quellcode:
type
  TStartupLocation = (slRegRunCommon32,
                      slRegRunCommon64,
                      slRegRunOnceCommon32,
                      slRegRunOnceCommon64,
                      slRegRunUser,
                      slRegRunOnceUser,
                      slSMCommon,
                      slSMUser
                      );
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?

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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Teilbereich von Enum in Combobox und zurück

  Alt 7. Mai 2015, 12:16
Lege doch den urspünglichen Wert in Objects ab.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#3

AW: Teilbereich von Enum in Combobox und zurück

  Alt 8. Mai 2015, 22:52
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#4

AW: Teilbereich von Enum in Combobox und zurück

  Alt 9. Mai 2015, 06:29
Man kann auch böstillig billig den Typen nach TObject/Pointer casten.

Es wird nirgendwo geprüft, ob es ein echtes Objekt ist.
In Delphi ist es als TObjekt deklariert, der WinAPI ist der Typ egal.
https://msdn.microsoft.com/de-de/lib.../bb775909.aspx
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Mai 2015 um 06:34 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Teilbereich von Enum in Combobox und zurück

  Alt 9. Mai 2015, 08:43
Diese Lösung würde ich als praktisch und nicht als billig ansehen.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz