Dlaczego nie moge zrobic takiej procedury?
case edit1.text of
'a': //...
'b': //...
wyskakuje: 'Ordinal type required'
Zapewne case of odnosi sie jedynie do integerow ale da sie to zrobic jakos ze stringami?
Dlaczego nie moge zrobic takiej procedury?
case edit1.text of
'a': //...
'b': //...
wyskakuje: 'Ordinal type required'
Zapewne case of odnosi sie jedynie do integerow ale da sie to zrobic jakos ze stringami?
Bo się nie da! Po prosto to musi być typ policzalny, czyli np: Char
a jest jakas procedura zastepcza?
else if
Jeżeli to są jedynie pojedyncze znaki to można tak:
case Edit1.Text[1] of
'a':
'b':
a jezeli nie i ich dlugoc tez nie jest stala? :(
to tylko If Else
Wrzucić mozliwe wartosci do jakeijs tablicy albo StingLista i w CASE sprawdzać nie string, ale jego numer w tablicy, tzn dac rozkaz wyszukania i porownywac wynik :)
Jak kiedyś już pisałem, jeśli string ma max. 4 (8) znaków (albo pierwsze 4(8) znaków wystarcza, by zidentyfikować string), wtedy można brutalnie (przez Move) zrzutować na LongInt (Int64) i robić case na LongInt(Int64). Inna opcja: przejść na PowerBasic: tam case (nazywające się select case) działa na intach, stringach i floatach.