Hallo Tpercon,
aus irgendeiner Ausgabe des PC Magazin habe ich eine Funktion übernommen, die es erlaubt, Strings in einer case-Anweisung zu verarbeiten. Vielleicht bringt es Dich ja Deinem Ziel näher:
Mein SpeedButton zum Testen:
Delphi-Quellcode:
procedure TFTest.sbTestClick(Sender: TObject);
const
maxw = 5;
txt : array[1..maxw] of string = ('bla1','bla2','bla3','bla4','bla5');
begin
s := 'Bla1'; // egal wo er herkommt z.B. aus einem Edit.Text
// Groß-Klein-Schreibung wird im UP ignoriert
if NofStr(s, txt) >= 0
then Showmessage('ist drin')
else Showmessage('Fehlt');
end;
und hier noch das Unterprogramm (UP):
Delphi-Quellcode:
{liefert 0 ... n zurück, wenn s in sarr gefunden wurde, -1, wenn nicht}
function NofStr( s : string; sarr : array of string) : integer;
var
erg, i : integer;
begin
erg := -1;
s := uppercase(s);
for i := 0 to high(sarr) do begin
if s = uppercase(sarr[i]) then begin
erg := i;
break;
end;
end;
Result := erg;
end;
Statt UpperCase kann man auch AnsiUpperCase verwenden, welches wohl auch Umlaute berücksichtigt, wenn ich die Beschreibung richtig verstanden habe.
mfg
eddy