...use Strings in a Case Statement?

Author: Loïs Bégué
Homepage: http://www.begue.de

Category: Strings

{
  Funktioniert unabhängig von der Klein-/Großscheibung in dem Input-String:
  Versuchen Sie es z.B. mit "Mother" oder "mOTHER"...

  Damit kann man seine eigene Makrosprache entwickeln oder bestimmte
  Teile eines Strings aus einem SQL statement, aus einer wohlgeformten Datei
  wie im XML-Format...interpretieren.
}

{
  It works fine and it's not case sensitive:
  Try to give "Mother" or "mOTHER" in the Input-String...

  For exemple, you may use this to programm your own macro command system.
  You can also parse a well formed text file (XML...)
  Or to interpret a Database Field name as a selector, or whatelse you want.
}


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;




 

printed from
www.swissdelphicenter.ch
developers knowledge base