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

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

22.05.2014, 21:09. Показов 9191. Ответов 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
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 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
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 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
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 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
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 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
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru