![]() |
|
#12
|
|||
|
|||
![]() В 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 подправил - там косяк небольшой был Последний раз редактировалось U.B.M., 04.03.2013 в 17:18. |
Этот пользователь сказал Спасибо U.B.M. за это полезное сообщение: | ||
KSN (04.03.2013)
|