16 / 16 / 8
Регистрация: 07.03.2010
Сообщений: 146
1

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

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

Author24 — интернет-сервис помощи студентам
У меня на форме несколько кнопок. Как вызвать событие кнопки, если я знаю номер кнопки. Например 20 кнопок, номер 10, значит кнопка button10
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.01.2011, 17:04
Ответы с готовыми решениями:

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

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

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

7
Фрилансер
Эксперт С++
 Аватар для Dekio
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
30.01.2011, 17:21 4

Не по теме:

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

0
 Аватар для Евгений В
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,279
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
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
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
Фрилансер
 Аватар для Mad_Dog
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
31.01.2011, 12:26 7
Mawrat, а зачем перебирать ВСЕ компоненты на форме? Sender есть, определили что это кнопка, определили ее Tag, а потом через Case можно и действия задать...
0
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
31.01.2011, 16:09 8
Цитата Сообщение от Mad_Dog Посмотреть сообщение
Mawrat, а зачем перебирать ВСЕ компоненты на форме? Sender есть, определили что это кнопка, определили ее Tag, а потом через Case можно и действия задать...
Да - можно и так делать. В случае, если коды обработки каждой из кнопок не очень большие - такой вариант в самый раз. Если же обработчики большие, тогда может есть смысл делать так как в моём посте написано - чтобы код не усложнять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.01.2011, 16:09
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
Позиционировани­е Kafka Consumer и Seek-операции
Javaican 17.03.2025
Что же такое Consumer Seek в Kafka? По сути, это API-метод, который позволяет программно указать, с какой позиции (offset) Consumer должен начать или продолжить чтение данных из партиции. Без этого. . .
Python NumPy: Лучшие практики и примеры
py-thonny 17.03.2025
NumPy (Numerical Python) — одна из ключевых библиотек для научных вычислений в Python. Она превращает Python из просто удобного языка общего назначения в среду для проведения сложных математических. . .
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru