Перезапуск формы по нажатию на кнопку
Написал программу которая рисует координаты в диапазоне, который проверяется по нажатию на кнопку "ок"
Есть 4 поля для ввода координат, после заполнения полей кнопка "Ок" проверяет диапазон в полях и если всё нормально рисует линию.
Но после повторного изменения текстовых полей валидность уже никак не проверяется. Как сделать так, чтобы кнопка после изменения полей снова проверяла на валидность заполненное число?
Код проверки прилагается:
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
Case BitBtn2.Tag of
0: Begin
If (Edit1.Text='') or (StrToInt(Edit1.Text)<190) or (StrToInt(Edit1.Text)>650) Then
Begin
ShowMessage('Ошибка! 190<X<650!');
Edit1.Clear;
Edit1.SetFocus;
End
Else
Begin
Label3.Enabled:=True;
Edit2.Enabled:=True;
Edit2.SetFocus;
BitBtn2.Tag:=1;
End;
End;
1: Begin
If (Edit2.Text='') or (StrToInt(Edit2.Text)<20) or (StrToInt(Edit2.Text)>350) Then
Begin
ShowMessage('Ошибка! 20<Y<350!');
Edit2.Clear;
Edit2.SetFocus;
End
Else
Begin
Label4.Enabled:=True;
Label5.Enabled:=True;
Edit3.Enabled:=True;
Edit3.SetFocus;
BitBtn2.Tag:=2;
End;
End;
2: Begin
If (Edit3.Text='') or (StrToInt(Edit3.Text)<190) or (StrToInt(Edit3.Text)>650) Then
Begin
ShowMessage('Ошибка! 190<X<650!');
Edit3.Clear;
Edit3.SetFocus;
End
Else
Begin
Label6.Enabled:=True;
Edit4.Enabled:=True;
Edit4.SetFocus;
BitBtn2.Tag:=3;
End;
End;
3: Begin
If (Edit4.Text='') or (StrToInt(Edit4.Text)<20) or (StrToInt(Edit4.Text)>350) Then
Begin
ShowMessage('Ошибка! 20<Y<350!');
Edit4.Clear;
Edit4.SetFocus;
End
Else
Begin
BitBtn2.Tag:=4;
End;
End;
4: Begin
Form2.Canvas.Pen.Color:=Colorbox1.Selected;
Form2.Canvas.MoveTo(StrToInt(Edit1.Text),StrToInt(Edit2.Text));
Form2.Canvas.LineTo(StrToInt(Edit3.Text),StrToInt(Edit4.Text));
Button3.Enabled:=True;
End;
End;
end;
Ответы (2 шт):
4: Begin
Form2.Canvas.Pen.Color:=Colorbox1.Selected;
Form2.Canvas.MoveTo(StrToInt(Edit1.Text),StrToInt(Edit2.Text));
Form2.Canvas.LineTo(StrToInt(Edit3.Text),StrToInt(Edit4.Text));
Button3.Enabled:=True;
BitBtn2.Tag:=0;
End;
Условия, задаются так же, как и с условным оператором if..., укажите нужные
ButtonOk.Enabled := (Edit1.Text <> '') and (StrToInt(Edit2.Text)<20) and (StrToInt(Edit2.Text)>350) and (....);
и добавьте проверку условий в нужном месте (FormActivate, ButtonClick и т.д).
Знаток, оставивший минус, мне ни чем не навредит, а вот автору вопроса, мог бы и помочь, предложив свое решение!