Другие языки программирования и технологии

[Delphi] Обработка Edit. Как ввести проверку, чтобы первый символ в Edit был числом?

Можно и попроще. :-)
Проверка на цифры:
var
S : string;
...
S:=Edit1.Text;
if (S<>'') and (S[1] in ['0'..'9']) then ...// цифра.
Проверка на буквы. Тут похуже. Если только на латинские, тогда так.
S:=Edit1.Text;
if (S<>'') and (S[1] in ['a'..'z','A'..'Z']) then... // буква
если нужны еще и русские, то в множество придется добавить все русские буквы.
А еще лучше объявить константу типа "множество" с русскими буквами.

Для Delphi 2009 более поздних версий (с поддержкой строк Unicode) код следует несколько изменить.
А именно:
S:=Edit1.Text;
if (S<>'') and CharInSet(S[1], ['0'..'9']) then ...// цифра.

Это описание самого факта проверки. Надо ли вам написать полный обработчик события
OnChange для TEdit? Если трудности - пишите, обработаем. :-)
Владислав Деревянко
Владислав Деревянко
4 193
Лучший ответ
Правильнее всего - использовать TMaskEdit с соотв. маской.
Serg Prok
Serg Prok
72 281
проверить первый символ. Т. е. оставить от строки слева один символ и прверить является ли он чилсом.
1) вариант
if ( (LeftStr(ИмяТвоегоЭдита. Text, 1) = "0") or (LeftStr(ИмяТвоегоЭдита. Text, 1) = "1") ...и так делее до 9 ) then
begin
showmassege "первый сивол цифра";
end;
2) второй вариант проверить LeftStr(ИмяТвоегоЭдита. Text, 1)// ord ("Символ") возвращает номер символа в кодировки ASCII

if ((((ord(LeftStr(ИмяТвоегоЭдита. Text, 1)) >= 48 )or (ord(LeftStr(ИмяТвоегоЭдита. Text, 1)) <= 57)) then
begin
showmassege "первый сивол цифра";
end;

// надеюсь скобки не напутал

Похожие вопросы