С Новым годом! Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/48: Рейтинг темы: голосов - 48, средняя оценка - 4.63
1 / 1 / 1
Регистрация: 16.12.2013
Сообщений: 41

Активация кнопки

22.05.2014, 21:09. Показов 9211. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем здравствуйте, передо мной поставленна задача такая: нужно, что бы при заполнении lableedit активировалась кнопка, изначально она неактивна, при чем, допустим в lableedit1 должны быть только цифры, если туда вписать букву кнопка активироваться не должна, так же есть lableedit2 куда вводить надо только буквы, направьте на путь истинный пожалуйста и с примером если можно, дальше постараюсь сам додуматься
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2014, 21:09
Ответы с готовыми решениями:

Активация кнопки при определенных условиях
всем привет. реализую функцию активации кнопки при определнных условиях. вот фрагмент работающего кода procedure...

Помесячная активация программы
Здравствуйте, подскажите пожалуйста, можно как нибудь сделать активацию программы на время? Чтоб вот допустим человек купил программу на...

Активация кнопки по нажатию кнопки)
Как сделать чтобы по нажатии одной кнопки становилась активной вторая??

10
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
22.05.2014, 23:45
Направляю: в момент изменения пользователем содержимого LabeledEdit-а возникает событие OnChange. Если этим воспользоваться, и написать вот такой обработчик:
Pascal
1
2
3
4
5
procedure TForm1.LabeledEdit1Change(Sender: TObject);
var value : Integer;
begin
  Button1.Enabled := TryStrToInt(LabeledEdit1.Text, value);
end;
, то будет то, что тебе нужно: как только текст, введенный пользователем перестанет напоминать число - кнопка тут же станет неактивной...

Идея понятна?
1
1 / 1 / 1
Регистрация: 16.12.2013
Сообщений: 41
23.05.2014, 07:35  [ТС]
понятна идея, а получается нужно создавать процесс для каждого lableedit'а? и в редакторе объектов пнопки значение Enabled должно быть false, верно?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
23.05.2014, 10:01
Цитата Сообщение от mr-anri Посмотреть сообщение
получается нужно создавать процесс для каждого lableedit'а?
Если они делают разные вещи - то да, если у тебя LabeledEdit3 и LabeledEdit5 должны реагировать только на числа, как и LabeledEdit1 - то можно попробовать обойтись для них написанием одного обработчика (но его, конечно, надо будет чуть-чуть переделать)

Цитата Сообщение от mr-anri Посмотреть сообщение
в редакторе объектов пнопки значение Enabled должно быть false
Верно.
0
1 / 1 / 1
Регистрация: 16.12.2013
Сообщений: 41
23.05.2014, 16:05  [ТС]
сейчас предположу, а вы скажите пожалуйста можно ли так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.LabeledEdit1Change(Sender: TObject);
begin
  UpdateButton;
end;
 
procedure TForm1.UpdateButton;
var value : Integer;
begin
  Button1.Enabled := TryStrToInt(LabeledEdit1.Text, value);
Button1.Enabled := TryStrToInt(LabeledEdit2.Text, value);
Button1.Enabled := TryStrToInt(LabeledEdit3.Text, value);
end;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
23.05.2014, 16:27
Нет, это не даст того результат, который ты хочешь получить, Enable всегда будет выставлено только по результатам проверки LabeledEdit3. А если сделать вот так:
Pascal
1
2
3
4
5
6
7
8
procedure TForm1.UpdateButton;
var value : Integer;
begin
  Button1.Enabled :=
    TryStrToInt(LabeledEdit1.Text, value) and
    TryStrToInt(LabeledEdit2.Text, value) and
    TryStrToInt(LabeledEdit3.Text, value);
end;
, то будут учитываться все поля ввода, и пока числа не будут введены везде, кнопка активной не станет...
0
1 / 1 / 1
Регистрация: 16.12.2013
Сообщений: 41
25.05.2014, 20:58  [ТС]
а как сделать обработчик для текста, получается что мы не должны переводить в Integer ведь у нас тип данных String? сделал вот такой код, попытался так сказать в пример засунуть обработчик текста, но выдает ошибку byt компилируется, скажите пожалуйста где я облажался
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.UpdateButton;
var value : Integer;
   Number: String;
begin
  ButtonAdd.Enabled :=
 TryStrToInt(LabeledEdit1.Text, Number) and
 TryStrToInt(LabeledEdit2.Text, Number) and
 TryStrToInt (LabeledEdit3.Text, Number) and
  TryStrToInt(LabeledEdit4.Text, Number) and 
    TryStrToInt(LabeledEdit5.Text, value) and
    TryStrToInt(LabeledEdit6.Text, value) and
    TryStrToInt(LabeledEdit7.Text, value)and
  TryStrToInt(LabeledEdit8.Text, value);
end;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
25.05.2014, 21:03
Для начала неплохо было бы написать, что именно должно дозволяться вводить в каждый из этих LabelEdit-ов, и только потом шаманить с их содержимым. А так - обрывочные сведения не дают полной картинки, что может пользователь ввести, скажем, в LabeledEdit6, и чего он туда вводить не должен...
0
1 / 1 / 1
Регистрация: 16.12.2013
Сообщений: 41
25.05.2014, 22:27  [ТС]
в LabeledEdit(1-4) должен быть текст (буквы) а в LabeledEdi(5-8) цифры, для цифр уже сделали, вы мне пример показали как это реализовать, а как до букв не могу понять, вроде по аналогии сделал а не работает

Добавлено через 1 час 19 минут
даже если прописываю
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.UpdateButton;
var value : Integer;
begin
  Button1.Enabled :=
    TryStrToInt(LabeledEdit1.Text, value) and
    TryStrToInt(LabeledEdit2.Text, value) and
    TryStrToInt(LabeledEdit3.Text, value);
end;
для абсолютно всех LableEdit-ов то не активируется кнопка...в чем проблема не могу понять....
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
26.05.2014, 01:12
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.UpdateButton;
const
  nonLetter = '0123456789';
var
  value : Integer;
begin
  Button1.Enabled :=
    TryStrToInt(LabeledEdit1.Text, value) and
    TryStrToInt(LabeledEdit2.Text, value) and
    TryStrToInt(LabeledEdit3.Text, value) and
    TryStrToInt(LabeledEdit4.Text, value) and
    (LastDelimiter(nonLetter, LabeledEdit5.Text) = 0) and
    (LastDelimiter(nonLetter, LabeledEdit6.Text) = 0) and
    (LastDelimiter(nonLetter, LabeledEdit7.Text) = 0) and
    (LastDelimiter(nonLetter, LabeledEdit8.Text) = 0);
end;
, к примеру. Если что - можно подкорректировать: в nonLetter добавляются символы, которые запрещено вводить в LabelEdit-ы, начиная с 5-го...

Всем LabelEdit-ам назначить в OnChange процедуру LabeledEdit1Change не забудь...
0
1 / 1 / 1
Регистрация: 16.12.2013
Сообщений: 41
26.05.2014, 11:21  [ТС]
спасибо большое за помощь) все работает) тему можно закрывать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2014, 11:21
Помогаю со студенческими работами здесь

Активация кнопки
Доброго времени суток форумчане. Заранее прошу прощения, я новичок, потому могу где то написать глупость ) Задача следующая, есть 5...

Активация кнопки
Помогите пожалуйста. Есть Edit1 и Edit2 нужно что бы пока поля не заполнены то кнопка была не активна. Когда все поля будут заполнены...

Активация кнопки
Как сделать кнопку (Button) активной после (правильного) заполнения формы?

Активация кнопки
В тесте (форме) отображается вопрос, варианты ответов, логическое поле для выбора ответа, кнопки вперед/назад и кнопка 'Выход из теста',...

Активация кнопки в unity3d
При нажатии на кнопку она деактивируется! Как бы сделать что бы она активировалась через сутки когда приложение закрыто?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru