Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.03.2013, 20:02
KSN KSN вне форума
Прохожий
 
Регистрация: 03.03.2013
Сообщения: 7
Репутация: 10
Печаль Синтаксис

Помогите, как сделать так что бы кнопка была доступна только в том случае, когда введенные значения в LabeledEdit1 и LabeledEdit2 были верны.
Когда я ввожу неверное значение в LabeledEdit1 кнопка блокируется — процедура завершена, потом я ввожу в LabeledEdit2, не исправляя ошибку в LabeledEdit1, допустимое значение и кнопка опять доступна, не взирая на не исправленную ошибку в LabeledEdit1. Код можно просмотреть в вложенном файле.
Изображения
Тип файла: png 321.png (27.8 Кбайт, 8 просмотров)
Ответить с цитированием
  #2  
Старый 03.03.2013, 20:06
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
button1.enabled := (Проверка(labelededit1.text)) and (Проверка(labelededit2.text))
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 03.03.2013, 20:18
KSN KSN вне форума
Прохожий
 
Регистрация: 03.03.2013
Сообщения: 7
Репутация: 10
По умолчанию

Можно чуть по подробней. Что подразумевается под словом проверка в коде и где именно эту строку нужно прописать?
Ответить с цитированием
  #4  
Старый 03.03.2013, 20:21
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от KSN
...где именно эту строку нужно прописать?
Код:
procedure TForm1.LabeledEdit1Change(Sender: TObject);
begin
Button1.Enabled:= (LabeledEdit1.Text = 'slovo') and (LabeledEdit2.Text = 'delo');
end;
Второму эдиту в обжект инспекторе нужно задать тоже Edit1Change

Последний раз редактировалось Alegun, 03.03.2013 в 20:35. Причина: Дополнение
Ответить с цитированием
  #5  
Старый 03.03.2013, 20:31
KSN KSN вне форума
Прохожий
 
Регистрация: 03.03.2013
Сообщения: 7
Репутация: 10
По умолчанию

Код:
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  
Старый 04.03.2013, 12:51
U.B.M. U.B.M. вне форума
Новичок
 
Регистрация: 06.10.2011
Сообщения: 94
Версия Delphi: Delphi 7
Репутация: 13
По умолчанию

Код:
//где-то в коде при создании формы (или изначально установить)
  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  
Старый 04.03.2013, 13:09
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Повторюсь, достаточно одной поцедуры.
Ответить с цитированием
  #8  
Старый 04.03.2013, 14:53
KSN KSN вне форума
Прохожий
 
Регистрация: 03.03.2013
Сообщения: 7
Репутация: 10
По умолчанию

@ U.B.M.
Это вообще ... извините, но бред.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:45.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025