Mam problem z pętlą Case of. Czytając w helpie piszą że Selektorem nie może być zmienna typu string. I faktycznie gdy takiej zmiennej użyję wywala błąd ''Ordinal type required". Ale w podanym przykładzie w helpie z kolorami jest użyta typu string (tak mi się przynajmniej wydaje) - czyli jest dozwolone? Jak ten problem rozwiązać - potrzebuję użyć tej zmiennej
0
0
clwhite to nie string tylko const.
kliknij na niego z wcisnietym ctrl'em to cie przeniesie do miejsca gdzie jest deklaracja tej stalej - i zobaczysz ze clWhite to jest liczba.
tak samo z innymi kolorami.
0
To jest jakaś metoda żeby zmienną tekstową tam użyć?
0
Wydaje mi sie że pozostaje tylko if..then..else :/ .
0
Niekoniecznie - jeżeli te zmienne są krótkie (string <= 8 znaków) można rzutować na Int64 (Move)..
var
x:Int64;
s:string[8];
begin
s:= 'tekst';
x:=0;
Move(s[1], x, Length(s));
end;
I teraz case śmiga...
0
Napisałem sobie kiedyś coś takiego, może się przyda:
const
TSet: array[0..1] of string = (
'text1', //0
'text2' //1
);
function IsIn(S: String): ShortInt;
var i: ShortInt;
begin
Result := -1;
for i := Low(TSet) to High(TSet) do
if S = TSet[i] then begin
Result := i;
Break;
end;
end;
procedure CaseOfString(P: String);
begin
case IsIn(P) of
0: begin end;
1: begin end;
else begin end;
end;
end;