Перезапуск формы по нажатию на кнопку

Написал программу которая рисует координаты в диапазоне, который проверяется по нажатию на кнопку "ок"
Есть 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 шт):

Автор решения: Igor
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;
→ Ссылка
Автор решения: Deda

Условия, задаются так же, как и с условным оператором if..., укажите нужные

ButtonOk.Enabled := (Edit1.Text <> '') and (StrToInt(Edit2.Text)<20) and (StrToInt(Edit2.Text)>350) and (....);

и добавьте проверку условий в нужном месте (FormActivate, ButtonClick и т.д).

Знаток, оставивший минус, мне ни чем не навредит, а вот автору вопроса, мог бы и помочь, предложив свое решение!

→ Ссылка