Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - case of und string
cbs - Sa 27.07.02 11:12
Titel: case of und string
hallo und nen wunderschönen guten tag
ich suche eine möglichkeit die
case of Anweisung mit einem
string als seperator zu benutzen.
ich habe folgende möglichkeit gefunden:
Strings als Selktionskriterien für CASE-Konstrukte benutzen (swissdelphicenter.ch) [
http://www.swissdelphicenter.ch/de/showcode.php?id=1028]
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| uses TypInfo;
type TNumericChoiceParent = (ncp_Mother, ncp_Father, ncp_Child);
procedure TForm1.btChooseClick(Sender: TObject); var S: string; begin S := InputEdit.Text; case TNumericChoiceParent(GetEnumValue(TypeInfo(TNumericChoiceParent), 'ncp_' + S)) of ncp_Mother: ShowMessage('Hello Mom :o)'); ncp_Father: ShowMessage('Hi, Dad -]'); ncp_Child: ShowMessage('Shut up and eat your soup !-('); else ShowMessage('Who do you think that you are?'); end; end; |
hier werden an zwei stellen die auswahlkriterien definiert. einmal als neuen typ und einmal in der case of anweisung.
jetzt meine frage: geht das auch einfacher? ich hab mindestens 20-30 auswahlkriterien die sich auch ändern können (nicht vom benutzer). ich denke mal das ist ziemlich umständlich immer bei beiden stellen die änderungen vorzunehmen.
bin für jeden hinweis dankbar
Steffer - Sa 27.07.02 13:45
Ich habe dazu folgendes gefunden:
Quelltext
1: 2: 3: 4: 5:
| function StringIndex(such: string; aos: array of string): integer; begin for Result := high(aos) downto 0 do if AnsiSameText(such, aos[Result]) then break; end; |
Die komplette Anwendung der Function findest du hier:
http://www.faqsen.de/find.jsp?FAQ=1;495548514850495052544856;2
cbs - Sa 27.07.02 15:14
ok danke
ich wollte aber eigentlich von der beziehung
- position des strings im array
- und index in der case of anweisung
unabhängig sein, in deinem beispiel bin ich ja davon abhängig.
lasse ich beispielsweise ein string im array weg muß ich das dann im index von case of (0,1,2 ... usw) ja auch wieder korrigieren.
wie gesagt ich hab da nen bissel viel strings. wenns da noch ne andere möglichkeit gibt dann bin ich mal gespannt.
aber trotzdem danke, die function ist auf jedenfall eine alternative zu dem anderen beispiel. mal testen welche schneller ist :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!