Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/41: Рейтинг темы: голосов - 41, средняя оценка - 4.76
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187

Узнать о нажатой кнопке в ходе работы программы

02.08.2009, 18:37. Показов 8183. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня суток!
Как динамическим образом по ходу работы программы узнать о нажатой кнопке (Button) их несколько и нужно узнать какую из них нажал пользователь?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.08.2009, 18:37
Ответы с готовыми решениями:

Рисование фигур в ходе работы программы
Как сделать, чтобы в процессе работы программы с небольшой паузой рисовались эллипсы? int i = 300; while...

Выполнение кода, полученного в ходе работы программы
Доброго времени суток! Имеется приложение, в котором пользователь, в соответствующее поле, заносит свой код (например, создание фреймика...

Поле класса в ходе работы программы становится inaccessible value
Есть такая проблема. В ходе программы таймером динамически создаются объекты класса customer, так же этими объектами управляет функция...

19
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
02.08.2009, 19:04
ммм а что уже процедуру ButtonClick куда-то убрали?
0
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.08.2009, 19:11  [ТС]
А можно набросок кода для представления...
Мне все же нужно узнать какую именно кнопку нажал пользователь из предоставленных а не только факт что он нажал...
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4310 / 2102 / 431
Регистрация: 19.07.2009
Сообщений: 3,184
Записей в блоге: 24
02.08.2009, 19:19
Как вариант ты можешь к каждой кнопке приставить процедуру в духе
Delphi
1
2
3
4
procedure ButtonClick(Sender: TObject);
begin
      ShowMessage('You have pressed button with tag '+IntTostr(TButton(Sender).Tag));
end;
При этом каждой кнопке присвоить в свойствах свое собственное Tag (в Object Inspector)
По Tag ты можешь определить однозначно, какая именно кнопка была нажата.
Процедуру ты можешь изменить под свою нужду.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
02.08.2009, 19:20
В событии OnClick каждой кнопки добавьте сообщение о нажатии.
0
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.08.2009, 19:27  [ТС]
Вот именно что нужно передать во внутрь программы нажатую кнопку а не выводить это на экран пользователю (какую кнопку он нажал). Нужно послать (например Button11) непосредственно в код программы! Так как у меня объектный массив и по нажатию на объекте идет выборка данного объекта из массива (сказанно образно)...
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.08.2009, 19:33
Цитата Сообщение от DannerDOS Посмотреть сообщение
Вот именно что нужно передать во внутрь программы нажатую кнопку а не выводить это на экран пользователю
а в чем собственно разница? ну не выводите ее.. а работайте с ней. в чем проблема?
0
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.08.2009, 19:37  [ТС]
Допустим пользователь нажимает определенную кнопку из ему предоставленных, так вот эту кнопку (каторую выбрал пользователь) нужно послать во внутрь программы (в код) т.е. в объектный массив в котором в дальнейшем ведеться обработка события с учетем этой кнопки... (весь процесс осуществляеться динамическим образом в ходе работы программы). И так как узнать какую кнопку нажал пользователь и соответственно далле выбрать из массива объектов данную кнопку, но это уже я знаю как реализовать...
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.08.2009, 19:39
вам объяснили же тут
Узнать о нажатой кнопке в ходе работы программы
0
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.08.2009, 19:43  [ТС]
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
а в чем собственно разница? ну не выводите ее.. а работайте с ней. в чем проблема?
Просто сама суть задачи зависит от последовательности нажатых кнопок (они никак не обрабатываються) просто нужно послать Button : TObject в код программы...

Добавлено через 3 минуты 2 секунды
Я думаю что здесь вся фишка в процессе активного объекта Sender нужно с ним пороботать так что бы он выдавал мне тот объект на который совершилось действие то бишь Click (в данном случае)...

Так вот как вытащить из Sender объект который был награжден Clickом...
0
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.08.2009, 19:46  [ТС]
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Вы там сам вопрос непоняли здесь он расскрыт на примере... то бишь понятнее...
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.08.2009, 19:46
какой программы? ты скажи конкретно что надо?

Delphi
1
2
3
4
5
6
{ присваеваешь всем кнопкам событию OmClick - указаную ниже функцию }
procedure ButtonClick(Sender: TObject);
begin
      { TButton(Sender) здесь будет равносильно ButtonX (где X индекс нажатой кнопки) }
      { (Sender as TButton) здесь будет тоже равносильно ButtonX (где X индекс нажатой кнопки) }
end;
0
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.08.2009, 19:48  [ТС]
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
какой программы? ты скажи конкретно что надо?

Delphi
1
2
3
4
5
{ присваеваешь всем кнопкам событию OmClick - указаную ниже функцию }
procedure ButtonClick(Sender: TObject);
begin
      { TButton(Sender) сдесь будет равносильно ButtonX (где X индекс нажатой кнопки}
end;
Спасибо! Что то мелькнуло... Поподробней пожалуста! Вот мне и нужно узнать ButtonX примерчик пообширнее можно...
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.08.2009, 19:51
Delphi
1
2
TButton(Sender).Caption := 'Пишешь необходимый тебе кэпшен';
TButton(Sender).Width := 100; {присваеваешь необдимую ширину.. и т.д.}
Добавлено через 44 секунды
т.е. TButton(Sender) - это и есть НАЖАТАЯ тобой кнопка
0
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.08.2009, 19:54  [ТС]
Вообщем нужно вытащить Name из Properties - вот так вот!!! вот теперь 100% ясно наверное!!!

Добавлено через 2 минуты 0 секунд
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Delphi
1
2
TButton(Sender).Caption := 'Пишешь необходимый тебе кэпшен';
TButton(Sender).Width := 100; {присваеваешь необдимую ширину.. и т.д.}
Добавлено через 44 секунды
т.е. TButton(Sender) - это и есть НАЖАТАЯ тобой кнопка
Получаеться можно так:
<переменная> := TButton(Sender).name;
Переменная типа стринг или объектного?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
02.08.2009, 19:56
Тебе же писали
Delphi
1
2
3
4
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=Button1.Name;
end;
0
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.08.2009, 20:00  [ТС]
Monte-Cristo ты меня почти понял! Доизложе свою мысль пожалуста!
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.08.2009, 20:07
Цитата Сообщение от DannerDOS Посмотреть сообщение
Переменная типа стринг или объектного?
стринг..

Цитата Сообщение от DannerDOS Посмотреть сообщение
Доизложе свою мысль пожалуста!
что именно доизложить? что ты пытаешься реализовать? у тебя есть массив кнопок, да? ты каждому OnClick всех кнопок присвоил одну функцию? так вот что ты пытаешься сделать?

если ты нажмешь на кнопку Button1, то
TButton(Sender) = Button1;

если на Button2, то
TButton(Sender) = Button2;
0
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.08.2009, 20:15  [ТС]
Все объяснил!!! Получилось! Спасибо аж два раза!!!

Добавлено через 7 минут 16 секунд
Да нет! Что то ошибку выдает при компиляции...
[DELPHIt]n(Sander) = Button1 then
If TButton(Sander) = Button2 then
If TButton(Sander) = Button3 then
If TButton(Sander) = Button4 then[/DELPHI]
...
Вот что мне нужно... Ответь!
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
02.08.2009, 20:20
if TButton(Sender).Name = 'Button1' then...
if TButton(Sender).Name = 'Button2' then...
так вернее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.08.2009, 20:20
Помогаю со студенческими работами здесь

В ходе работы программы она не останавливается на ввод с getline()
Необходимо заполнить массив объектов структуры. В структуре два поля: фамилия и год рождения. Но при запуске программы ввод фамилии...

Ввод имени переменной (объекта) из textBox - а в ходе работы программы
Приветствую вас всех друзья! Собственно интересует возможность и способ (в случае возможности) нарекать, создаваемые в Windows Forms,...

Как сделать переменную только для чтения в ходе работы программы?
У меня переменная в которую я кладу десереализованные данные, и больше не меняю в ходе работы только беру оттуда. Но не пойму как она все...

Как организовать добавление в один класс элементов другого в ходе работы программы
есть 2 класса Страна и континент. Подскажите, как организовать добавление страны в список в ходе работы программы (функция CreateCountry). ...

Собтия при нажатой кнопке
Я немножко знаю Qt,а ситуация в следующем.У меня имеется окно программы, в нём кнопки,которые управляют устройством, при нажатии на кнопку...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
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