![]() |
|
|
|
|
#1
|
|||
|
|||
|
Помогите, как сделать так что бы кнопка была доступна только в том случае, когда введенные значения в LabeledEdit1 и LabeledEdit2 были верны.
Когда я ввожу неверное значение в LabeledEdit1 кнопка блокируется — процедура завершена, потом я ввожу в LabeledEdit2, не исправляя ошибку в LabeledEdit1, допустимое значение и кнопка опять доступна, не взирая на не исправленную ошибку в LabeledEdit1. Код можно просмотреть в вложенном файле. ![]() |
|
#2
|
||||
|
||||
|
Код:
button1.enabled := (Проверка(labelededit1.text)) and (Проверка(labelededit2.text)) |
|
#3
|
|||
|
|||
|
Можно чуть по подробней. Что подразумевается под словом проверка в коде и где именно эту строку нужно прописать?
|
|
#4
|
||||
|
||||
|
Цитата:
Код:
procedure TForm1.LabeledEdit1Change(Sender: TObject); begin Button1.Enabled:= (LabeledEdit1.Text = 'slovo') and (LabeledEdit2.Text = 'delo'); end; Последний раз редактировалось Alegun, 03.03.2013 в 20:35. Причина: Дополнение |
|
#5
|
|||
|
|||
|
Код:
procedure TForm1.LabeledEdit1Change(Sender: TObject);
begin
if(LabeledEdit1.Text='')
or(LabeledEdit1.Text='-')
or(LabeledEdit1.Text=',')
or((Pos('-',LabeledEdit1.Text)<>0) and (Pos('-',LabeledEdit1.Text)<>1))
or((Pos(',',LabeledEdit1.Text)<>0) and (Pos(',',LabeledEdit1.Text)=1))
then Button1.Enabled:=False
else Button1.Enabled:=True
end;
procedure TForm1.LabeledEdit2Change(Sender: TObject);
begin
if(LabeledEdit2.Text='')
or(LabeledEdit2.Text='-')
or(LabeledEdit2.Text=',')
or((Pos('-',LabeledEdit2.Text)<>0) and (Pos('-',LabeledEdit2.Text)<>1))
or((Pos(',',LabeledEdit2.Text)<>0) and (Pos(',',LabeledEdit2.Text)=1))
then Button1.Enabled:=False
else Button1.Enabled:=True
end;
end.Не могли бы Вы внести нужные изменения. Я не могу понять как именно это сделать. ![]() |
|
#6
|
|||
|
|||
|
Код:
//где-то в коде при создании формы (или изначально установить) Button1.Enabled := false; // если эдит пустой изначально, то кнопка должна быть неактивна - так ведь? Как понял кнопка должна быть активна если окошко не пусто и текст в окошке не начинается с тире или запятой Код:
procedure TForm1.LabeledEdit1Change(Sender: TObject);
begin
Button1.Enabled := (LabeledEdit1.Text <> '') and
(Pos('-',LabeledEdit1.Text) <> 1) and
(Pos(',',LabeledEdit1.Text) <> 1) and
(LabeledEdit2.Text <> '') and
(Pos('-',LabeledEdit2.Text) <> 1) and
(Pos(',',LabeledEdit2.Text) <> 1);
end;
procedure TForm1.LabeledEdit2Change(Sender: TObject);
begin
Button1.Enabled := (LabeledEdit1.Text <> '') and
(Pos('-',LabeledEdit1.Text) <> 1) and
(Pos(',',LabeledEdit1.Text) <> 1) and
(LabeledEdit2.Text <> '') and
(Pos('-',LabeledEdit2.Text) <> 1) and
(Pos(',',LabeledEdit2.Text) <> 1);
end;
Последний раз редактировалось U.B.M., 04.03.2013 в 13:08. |
|
#7
|
||||
|
||||
|
Повторюсь, достаточно одной поцедуры.
|
|
#8
|
|||
|
|||
|
@ U.B.M.
Это вообще ... извините, но бред. |