Страница 1 из 1

Как узнать, буква или цифра?

Добавлено: 05 июл 2006, 14:58
Dr_Grizzly
Всем привет! Подскажите, есть Едит, в него попадает либо цифра либо буква, от этого мне нада менять путь по которому пойдет программа, как узнать что попало в Едит?

Добавлено: 05 июл 2006, 16:47
Blood_Magic

Код: Выделить всё

If (Edit1.Text<'0')and(Edit1.Text>'9') then 

Добавлено: 05 июл 2006, 23:50
vunder
Нужно обрабатывать событие OnKeyPress

Код: Выделить всё

procedure TAddEditListColumnForm.eWidthKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key in ['0'..'9'] then
  //цифра
  else
  //другое
end;

Добавлено: 06 июл 2006, 11:15
Dr_Grizzly
OnKeyPress cкорее всего не пойдет, т.к. значения присваиваются в процессе программы.

Есть проблема

Код: Выделить всё

If (Edit1.Text<'0')and(Edit1.Text>'9') then  
Фишка работает, только если заданна цифра или буква отдельно, а у меня попался случай что появилось значение - 2Т, в этом случае прога сказала что цифра, другой случай Т2 - это сказала что буква.
Мне нужно все таки чтоб даже 2Т была буква, а то появляется косяк в программе :)

Добавлено: 06 июл 2006, 11:39
LAngel

Код: Выделить всё

function isNumber(S: String): boolean;
var
  i: Integer;
begin
  if Length(S) = 0 then Result := False
  else begin
    Result := True;
    for i := 1 to Length(S) do
      Result := Result and (S[i] in ['0'..'9']);
  end;
end;

Добавлено: 06 июл 2006, 11:44
LAngel
Или проще ;)

Код: Выделить всё

function isNumber(S: String): Boolean;
begin
  Result := True;
  try StrToInt(S);
  except Result := False;
  end;
end;

Добавлено: 06 июл 2006, 16:43
Dr_Grizzly
ВО-О-О-О-О! Вот это тема! Самая что не на есть функция проверки, коротко и просто :)

Добавлено: 07 июл 2006, 12:33
Blood_Magic
LAngel писал(а):Или проще ]function isNumber(S: String): Boolean;
begin
Result := True;
try StrToInt(S);
except Result := False;
end;
end;[/code]
я бы так сделал:

Код: Выделить всё

function isNumber(S: String): Boolean;
var
  v,c:integer;
begin
  val(s,v,c);
  Result := c=0;
end;
работает быстрее и лишний раз исключение не создаем