singlepost

Хочу создать обработчик о пердупреждении некорректного ввода «часов» << На главную или назад  

Хочу создать обработчик о пердупреждении некорректного ввода «часов» и «мин». Но набираю в место 60 мин..78 мин..и сообщения не выходит о «некорректном воде числа» В чем тут ошибка?

procedure TForm1.Button1Click(Sender: TObject);
begin
flag:= true;
i:= 1;
while Ord(Edit1.Text[i])<>0 do
begin
if((Ord(Edit1.Text[i]) < 48) or (Ord(Edit1.Text[i]) > 57)) then
begin
flag:=false;
Edit1.Text:='Ошибка ввода!';
break;
end;
inc(i);
end;

i:=1;
while Ord(Edit2.Text[i])<>0 do
begin
if((Ord(Edit2.Text[i]) < 48) or (Ord(Edit2.Text[i]) > 57)) then
begin
flag:=false;
Edit2.Text:='Ошибка ввода!';
break;
end;
inc(i);
end;

if flag = true then
begin

44 ответов в теме “Хочу создать обработчик о пердупреждении некорректного ввода «часов»”

  1. 6
    Олег Рак ответил:

    ну так ето будет фишка твоей програми)

  2. 5
    Алексей Порынов ответил:

    Это таймер на выкл. Компа по истечении времени. По кнопке запуск…время отсчитывается назад. Разумеется. То время которое ввел. Все работает. Но некорректность не видит. Например если я ввиду 1 ч 78 мин..оно отсчитывает..как 2ч 18 мин…

  3. 4
    Михаил Асташкевич ответил:

    Ну… StrToInt('123456789123456789123456789') ни к чему хорошему не приведет.
    Или, например, StrToInt('-1')

  4. 3
    Михаил Асташкевич ответил:

    Я вижу проверки на то, что в едитах – числа. Все. Что должно проверять сами числа?

  5. 2
    Михаил Асташкевич ответил:

    function TForm1.CheckEdit(Edit:TEdit):boolean;
    var
    i,l:longint;
    begin
    CheckEdit:=false;
    l:=length(Edit.Text);
    if l>2
    then exit;
    for i:=1 to l do
    if not (Edit.Text[i]in['0'..'9'])
    then exit;
    val(Edit.Text,i,l);
    if not (i in [0..59])
    then exit;
    CheckEdit:=true;
    end;

  6. 1
    Константин Нежберт ответил:

    flag:=true;
    if Edit1.Text<>"" then
    begin
    if StrToInt(Edit.Text)>60
    begin
    ShowMessage("Неправильно введены часы");
    flag:=false;
    end;
    if StrToInt(Edit2.Text)>24 then
    begin
    ShowMess…
    flag:=false;
    end;
    If flag<>false savetime;
    end;

    Вот как-то так бы сделал я.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.