В Object Inspector ставим
для Button1 : свойство Enabled = false
для обоих TLabeledEdit : события LabeledEditKeyPress и LabeledEditChange
Код:
unit Unit1;
interface
uses
SysUtils, Classes, Controls, Forms, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure LabeledEditKeyPress(Sender: TObject; var Key: Char);
procedure LabeledEditChange(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Control(var Symbol : char; Pole : string);
begin
case Symbol of
'0'..'9' : ;
#8: ;
'-' : if Pole <> '' then Symbol := #0;
',' : if Pos(',', Pole) <> 0 then Symbol := #0;
else Symbol := #0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x, y, z : real;
begin
x := StrToFloat(LabeledEdit1.Text);
y := StrToFloat(LabeledEdit2.Text);
z := ((x*x)+(y*y));
if (z>=4) and (z<=9) then
Label1.Caption := 'Точка принадлежит области'
else
Label1.Caption := 'Точка не принадлежит';
end;
procedure TForm1.LabeledEditKeyPress(Sender: TObject; var Key: Char);
begin
Control(Key,TLabeledEdit(Sender).Text);
end;
procedure TForm1.LabeledEditChange(Sender: TObject);
var
value : Extended;
begin
Button1.Enabled := TryStrToFloat(LabeledEdit1.Text, value) and
TryStrToFloat(LabeledEdit2.Text, value);
end;
end.
Проверил для строк
'2' и '-,' (2 и -0)
'2' и ',4' (2 и 0,4)
работает
UPDATE
Немного control подправил - там косяк небольшой был