Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/57: Рейтинг темы: голосов - 57, средняя оценка - 4.98
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
1

Как вызвать событие кнопки, если я знаю номер кнопки?

30.01.2011, 17:04. Показов 10542. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня на форме несколько кнопок. Как вызвать событие кнопки, если я знаю номер кнопки. Например 20 кнопок, номер 10, значит кнопка button10
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.01.2011, 17:04
Ответы с готовыми решениями:

Как вызвать обработчик событий для кнопки в Delphi 7?
похожее нашел,но не уверен что то для кнопки Page Up или Page Down procedure TForm2.bOK(Sender:...

Как при динамическом создании кнопки переназначить OnClick событие
Нужно при создании кнопки переназначить событие OnClick newbutton.OnClick:=MyOnClick Так, чтобы в...

Как активировать кнопки при нажатии другой кнопки
Есть 1 кнопка, которая активная и 4 кнопки которые не активные вначале. По нажатию активной кнопки...

Событие на нажатие кнопки F1
Много Уважаемые форумчане) такой вопрос! можно ли забить событие на кнопку F1. Если да, то как...

7
Фрилансер
Эксперт С++
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 1
30.01.2011, 17:13 2
Цитата Сообщение от Kristina92 Посмотреть сообщение
Как вызвать событие кнопки
Выделить кнопку и в Object Inspector во вкладке Events выбрать событие
0
16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
30.01.2011, 17:18  [ТС] 3
мне надо программно, чтобы при нажатии на кнопку выбиралось наугад число и по этому числу нажималась определенная кнопка
0
Dekio
30.01.2011, 17:21
  #4

Не по теме:

Ну так тут нет гадалок, как написали вопрос, так вам и ответили

0
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
31.01.2011, 08:25 5
Kristina92,
Так, например
Delphi
1
2
3
4
5
6
7
8
9
10
var
  Name,NumberBtn:string;
begin
 
 NumberBtn:='10';
 Name:='Button'+ NumberBtn;
 
 if  TButton(FindComponent(Name)) is TButton then
 TButton(FindComponent(Name)).Click;
end;
if TButton(FindComponent(Name)) is TButton защитит от клика по не существующей кнопке,
TButton(FindComponent(Name)).Click - собственно, сам клик по кнопке
2
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
31.01.2011, 10:40 6
Ещё один способ - можно через инспектор объектов номер каждой из кнопок записать в свойство TButton.Tag. Потом делается так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm1.Button1Click(Sender: TObject);
var
  Btn : TButton;
  i, Num : Integer;
begin
  //Номер кнопки, которую надо нажать программно.
  Num := StrToInt(Edit1.Text);
  //Та кнопка, которую нажали.
  Btn := Sender as TButton;
  //Если задали номер той кнопки, чей обработчик OnClick сейчас выполняется
  // - в этом случае выходим.
  if Num = Btn.Tag then Exit;
 
  //Перебираем все компоненты, имеющиеся на форме.
  for i := 0 to Self.ComponentCount - 1 do begin
    //Если компонент является кнопкой.
    if Self.Components[i] is TButton then begin
      Btn := Self.Components[i] as TButton;
      //Если номер кнопки совпал с заданным номером,
      //то нажимаем эту кнопку программно -
      //вызваем её побработчик события OnClick.
      if Btn.Tag = Num then Btn.Click;
    end;
  end;
end;
1
Фрилансер
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
31.01.2011, 12:26 7
Mawrat, а зачем перебирать ВСЕ компоненты на форме? Sender есть, определили что это кнопка, определили ее Tag, а потом через Case можно и действия задать...
0
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
31.01.2011, 16:09 8
Цитата Сообщение от Mad_Dog Посмотреть сообщение
Mawrat, а зачем перебирать ВСЕ компоненты на форме? Sender есть, определили что это кнопка, определили ее Tag, а потом через Case можно и действия задать...
Да - можно и так делать. В случае, если коды обработки каждой из кнопок не очень большие - такой вариант в самый раз. Если же обработчики большие, тогда может есть смысл делать так как в моём посте написано - чтобы код не усложнять.
0
31.01.2011, 16:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2011, 16:09
Помогаю со студенческими работами здесь

Событие на нажатие кнопки
подскажите пожалуйста, как свернуть программу в трей, а при нажатии на определенные кнопки или...

Событие MouseMove для кнопки
Здравствуйте! Я хотел бы создать кнопку, нарисованную мной же. Она когда на неё наводишь курсор -...

Событие для динамически созданной кнопки
Всем привет! Имеется кодtype TForm1 = class(TForm) Button1: TButton; Label1: TLabel;...

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


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

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