Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
Внизtry..except Найти похожие ветки
← →
Nemeziz (2008-02-07 20:51) [0]Народ, Несколько дней назад начал програмить на Delphi. И вот возникла какая проблема. Как обработать ввод в edit (допускается ввод только числовых данных). Делаю вот так как описал ниже, но вылетает сообщение типа: данные должны быть целого типа. Можно сделать через OnKeyPress, но в данном случае необходимо сделать через try...except.
procedure TForm.btn_TestClick(Sender: TObject);
var
PosX, PosY, Res: Integer;
begin
PosX := Mouse.CursorPos.X;
PosY := StrToInt(edt_PosY.Text);
try
Res := MulDiv(PosX, PosY, 100);
except
on EConvertError do
Exit;
end;
end;
← →
NiGGa (2008-02-07 20:54) [1]TMaskEdit ?
← →
NiGGa (2008-02-07 20:59) [2]Уф. Не вчитался, прошу прощения.
На какой строке возникает исключительная ситуация?PosY := StrToInt(edt_PosY.Text);
?
Других не вижу. К чему бы это.
← →
Elec3C © (2008-02-07 21:01) [3]procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key < "0") or (Key > "9") then Key := #0;
end;
← →
{RASkov} © (2008-02-07 21:02) [4]> PosY := StrToInt(edt_PosY.Text);
PosY := StrToIntDef(edt_PosY.Text, Mouse.CursorPos.Y);
:)
← →
MsGuns © (2008-02-07 21:03) [5]Просто пример:
function MS_ComFnCheckSymbolForFloatText(Edit: TEdit; Key: Char): Char;
// Функция проверки введенного символа на корректность при вводе чисел
// (Рекомендуется для использования в обработчике TEdit.OnKeyPress)
// - Edit - указатель на TEdit, который принимает введенный символ
// - Key - код введенного символа;
begin
result := Key;
with Edit do
if not (Key in ["0".."9","-",DecimalSeparator,Char(VK_BACK),Char(VK_TAB)]) or
((Key=",") and (Pos(Key,Text)>0)) or
((Key="-") and ((Pos(Key,Text)>0) or (SelStart>0))) then result := #0;
end;
← →
MsGuns © (2008-02-07 21:06) [6]Пример использования:
procedure TForm1.Edit1KeyPress((Sender: TObject; var Key: Char);
begin
Key := MS_ComFnCheckSymbolForFloatText(TEdit(Sender), Key);
end;
← →
NiGGa (2008-02-07 21:23) [7][5] Вроде как еще символ "е" допускается?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.056 c