Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
14 / 13 / 2
Регистрация: 31.08.2011
Сообщений: 499
1

SpeedButton: узнать какая из кнопок нажата

01.09.2019, 14:26. Показов 2352. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть 5 кнопок SpeedButton, AllowAllUp выставлены в true, GroupIndex у всех 1 , как узнать какая нажата?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2019, 14:26
Ответы с готовыми решениями:

Выяснить, какая из 5-ти кнопок нажата
На форме 5 кнопок. В коде процедура: procedure TForm1.EditorKeyPress(Sender: TObject; var Key:...

Как узнать какая кнопка нажата?
У меня есть 20 кнопок обработчик события Onclick у всех одинаковый, мне необходимо поменять Caption...

Проверка нажата зафиксирована ли speedButton
Доброе времени суток. У меня такой вопрос, ни как не могу сделать. есть 4 speedbutton объеденную в...

Как узнать какая из кнопок вызвала DropDown Menu
Динамически создаются кнопки со стилем bsSplitButton, и назначается в качестве DropDownMenu -...

7
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
01.09.2019, 15:15 2
Например так. Присвоить всем кнопкам имена, первой кнопке прописать обработчик
Delphi
1
2
3
4
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Showmessage('Нажата кнопка '+(Sender as TSpeedButton).Name);
end;
Присвоить его всем кнопкам.

Добавлено через 4 минуты
Или присвоить свойство Tag кнопкам от 1 до 5, написать такой обработчик.
Delphi
1
2
3
4
5
6
procedure TForm1.SpeedButton1Click(Sender: TObject);
var n:integer;
begin
n:=(Sender as TSpeedButton).Tag;
Showmessage('Нажата кнопка номер '+inttostr(n));
end;
0
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,374
01.09.2019, 23:48 3
Думается мне что автору нужно узнать это не по нажатию кнопки, а несколько позднее, а тогда наверное так:
Delphi
1
2
3
4
5
 for i := 0 to ControlCount - 1
 do if Controls[i] is TSpeedButton
    then with Controls[i] as TSpeedButton
         do if (GroupIndex = 1) and Down
            then DoSomething(Name);
0
Модератор
3629 / 2150 / 759
Регистрация: 15.11.2015
Сообщений: 8,631
02.09.2019, 01:23 4
Просто по имени проверить:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := '-';
  if SpeedButton1.Down then Label1.Caption := '1';
  if SpeedButton2.Down then Label1.Caption := '2';
  if SpeedButton3.Down then Label1.Caption := '3';
  if SpeedButton4.Down then Label1.Caption := '4';
  if SpeedButton5.Down then Label1.Caption := '5';
end;
0
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
02.09.2019, 02:00 5
Цитата Сообщение от Пытливый Посмотреть сообщение
тогда наверное так
Тоже вариант решения не вполне грамотно заданного вопроса. Только я бы сначала посоветовал бы новичку использовать список Components, а не список Controls. Но это моё имхо.
0
Житель Земли
3002 / 3004 / 391
Регистрация: 26.07.2011
Сообщений: 11,463
Записей в блоге: 1
02.09.2019, 12:03 6
Цитата Сообщение от Пытливый Посмотреть сообщение
нужно узнать это не по нажатию кнопки, а несколько позднее
самое адекватное решение
Цитата Сообщение от Puporev Посмотреть сообщение
присвоить свойство Tag кнопкам от 1 до 5
и при нажатии кнопки сохранять Таг в переменной, а потом при необходимости считать значение, а не городить конструкцию с поиском компонентов
0
Модератор
3629 / 2150 / 759
Регистрация: 15.11.2015
Сообщений: 8,631
02.09.2019, 12:26 7
DenNik, чем свойство Name не угодило?
С сохранением в отдельную переменную согласен, так получится универсальнее.
0
Житель Земли
3002 / 3004 / 391
Регистрация: 26.07.2011
Сообщений: 11,463
Записей в блоге: 1
02.09.2019, 13:25 8
Цитата Сообщение от AzAtom Посмотреть сообщение
чем свойство Name не угодило?
хотя бы тем, что с case не работает
0
02.09.2019, 13:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2019, 13:25
Помогаю со студенческими работами здесь

Как узнать какая из кнопок нажата?
<?php $all_album_bd = mysqli_query($connection,"SELECT `id_album`,`name_album` FROM...

Узнать, какая кнопка в массиве кнопок была нажата
как узнать какая кнопка в массиве кнопок была нажата? написал след код но не могу передать...

Как определить какая кнопка из кучи кнопок нажата?
Здравствуйте! Не хотелось бы вешать код на каждую кнопку, если их допустим 480 =)) Как можно все...

Показать модальный диалог с N кнопок и проверить какая из них нажата
кнопки не являются по смыслу подобными DialogResult'ам, т.е. возвращать DialogResult.Ok и т.д....

Как отловить, какая из кнопок была нажата, и какую функцию запустить в гриде?
В гриде есть несколько кнопок (в Templete columns). скажем btnDeleteAll, btnDeleteOne, btnAddUser и...

как узнать какая нажата клавиша?
без обработчика программа должна понять какая нажата клавиша, даже если окно этой программы не...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru