Autor Beitrag
cbs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207
Erhaltene Danke: 1



BeitragVerfasst: Sa 27.07.02 11:12 
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)
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 299



BeitragVerfasst: Sa 27.07.02 13:45 
Ich habe dazu folgendes gefunden:
ausblenden 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:
www.faqsen.de/find.j...514850495052544856;2

_________________
Keine Signatur ...
cbs Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207
Erhaltene Danke: 1



BeitragVerfasst: 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: