Хочу создать обработчик о предупреждений некорректного ввода «часов» и «мин». Но набираю в место 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
23 февраля 2010 в 22:05
не хрена не пашет..а если и пашет..очень не коректно
может типа так?
($R *.dfm}
{ Во время создания формы свойству Visible компонента
Label3 надо присвоить значение False )
var
// интервал
rain: integer; // минут
sec: integer; // секунд
// в заголовок окна программы
// выводится, сколько времени осталось
procedure ShowTime;
var
buf: string[20];
begin
// минуты и секунды выводим двумя цифрами
if min < 10 then
buf := '0' + IntToStr(min) + ':'
else ,
buf := IntToStr(min) + ':';
if sec < 10 then
buf := buf + '0' + IntToStr(sec)
else
buf := buf + IntToStr(sec);
Forml.Label3.Caption := buf;
end;
// сигнал от таймера
procedure TForml.TimerlTimer(Sender: TObject);
begin
sec := sec — 1;
ShowTime; // показать, сколько времени осталось
if (min = 0) and (sec = 0) then
// заданный интервал истек
begin
Timerl.Enabled := False; // стоп
ShowMessage('Заданный интервал истек!');
Buttonl.Caption := 'Пуск';
Label3.Visible := False; // скрыть индикацию времени
// сделать видимыми поля ввода интервала
Labell.Visible := True;
Editl.Visible := True;
Label2.Visible := True;
Edit2.Visible := True;
exit;
end;
if (sec = 0) and (min > 0) then
begin
sec : = 60;
min := min — 1;
end;
end;
// щелчок на кнопке Пуск/Стоп
procedure TForml.Buttoniciick(Sender: TObject);
begin
if Forml.Timer1.Enabled then
// таймер работает, надо остановить
begin
Timer1.Enabled := False; // стоп
Buttonl.Caption := 'Пуск';
Label3.Visible := False; // скрыть индикацию времени
// сделать видимыми поля ввода интервала
Labell.Visible := True;
Editl.Visible := True;
Label2.Visible := True;
Edit2.Visible := True;
end
else
// таймер стоит, надо запустить
begin
min := StrToInt(Editl.Text);
sec := StrToInt(Edit2.Text);
if (sec = 0) and (min = 0) then
begin
ShowMessage('Надо задать интервал!');
exit;
end;
Timerl.Enabled
// скрыть поля ввода интервала
Label1.Visible
Editl.Visible
Label2.Visible
Edit2.Visible
Label3.Visible
= True; // запустить таймер
= False;
= False;
= False;
= False;
= True;
Buttonl.Caption := 'Стоп';
ShowTime;
end;
end;
23 февраля 2010 в 12:03
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 (strtoint(Edit2.Text) > 60) then
Edit2.Text:='Ошибка ввода!';
if flag = true then
begin
не компилировал, но должно работать