![]() |
String zu Typ
Hi Leute,
ich bins schonwieder^^ Ich hab folgendes allgemeines Problem: Ich hab erstma:
Delphi-Quellcode:
Jetzt hab ich ne Combobox, die als Items (TStrings glaub ich) nur 'Typ1' und 'Typ2' hat (Style is csDropDownList also kann man die als user net ändern!).
Type
TIrgendeinTyp=(Typ1,Typ2); ... VAR MeinTyp:TIrgendeinTyp; ... Ich will jetzt aus dieser Combobox das ausgewählte (STRING) als mein Typ (MeinTyp) haben...
Delphi-Quellcode:
geht net, sind ja verschiedene Typen...
MeinTyp:=combobox1.text;
Jetzt meine Frage: kann man ir-wie ne Typenumwandlung oda so machen, damit das so klappt? (So was wie StrToMeintyp^^) Bitte nich meckern, dass ich so was einfaches nich hinkriege... ich hab nich wirklich Ahnung von Programmieren ;) Thx schonma im voraus^^ mfg simon |
Re: String zu Typ
Verwende doch einfach den ItemIndex der Combobox. Dann brauchst du keine aufwändige Stringumwandlung.
|
Re: String zu Typ
Zitat:
Also der Index is doch INTEGER, check ich net wirklich, wie ich das machen soll Bitte ma für ganz doofe^^ |
Re: String zu Typ
Dein TIrgendeinTyp ist ein Enum was intern (im Speicher) nichts anderes ist als eine Zahl.
In deinem Beispiel ist also Typ1=0 und Typ2=1 (enums fangen, sofern nicht anders angegeben, immer bei 0 an) Wenn jetzt in der Combobox also der erste Eintrag (also eigentlich der nullte) gewählt wurde, so ist ItemIndex=0 und somit wäre das Typ1 Also:
Delphi-Quellcode:
Der Quelltext ist nicht getestet aber so in etwa sollte das funktionieren.
deineVariable=TIrgendeinTyp(Combobox.ItemIndex);
|
Re: String zu Typ
ahhhh....
nich nur dass es funktioniert, ich habs sogar bissel verstanden^^ thx thx thx thx thx thx usw.^^ |
Re: String zu Typ
Nur mal so aus Interesse:
Wie würde das denn mit der Zitat:
|
Re: String zu Typ
Zitat:
Delphi-Quellcode:
uses
TypInfo; type TEnum = (enEins, enZwei, enDrei); var Value: TEnum; S: String; begin Value := enZwei; S := GetEnumName(TypeInfo(TEnum), Integer(Value)); WriteLn(S); Value := GetEnumValue(TypeInfo(TEnum), S); // nur um es zu zeigen... WriteLn(Value); end; |
Re: String zu Typ
variante nr. 1 is eindeutig die kürzere, ich bleib lieber bei der^^
aber trotzdem thx fürs erklären :thumb: |
Re: String zu Typ
Delphi-Quellcode:
Ist nicht wirklich länger!? Allein mit einer harten Typumwandlung bist Du darauf angewiesen, dass der Eintragsindex die Deklarationsreihenfolge ausdrückt; mit GetEnumValue wird Dir das nicht auf die Füße fallen.
VariableDeinesTyps := TDeinTyp(GetEnumValue(TypeInfo(TDeinTyp), Stringvariable));
Teile und herrsche. |
Re: String zu Typ
da hat Panthrax recht. Vorteil vom direkten Cast ist allerdings das in der Combobox nicht die gleichen Bezeichnungen stehen müssen, sondern für den Menschen verständlichere Bezeichnungen gewählt werden können.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 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