![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| DriveSoftware |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 17.3.2003 Репутация: нет Всего: 4 |
Привет, с наступающим летом!
Форма содержит много кнопок (около 60), и если у каждой нужно ловить сообщение OnClick то получается немало кода, а как обслужить все эти кнопки в одной процедуре? |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Блин...
Сначала их все создаёшь. var A : array of TButton; SetLength (A,60); for i := 0 to 59 do begin A[i] := TButton.Create (Self); A[i].Parent := Form1; A[i].Width := ...; A[i].Height := ... A[i].OnClick := MyClick; end; А выше описываешь MyClick procedure TForm1.MyClick (Sender : TObject); begin ShowMessage ((Sender as TButton).Caption); //Или так: //ShowMessage (TButton(Sender).Caption); end; Не забудь вставить описание описание процедуры: procedure MyClick (Sender : TObject); туда, где описывается класс TForm1 (туды, где напиано {private declarations}). Примерно так. Но не тестировал. Может, где ошибка. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Можно, например, сделать так:
Если они у тебя выполняют схожую информацию, то сделай универсальный обработчик для клика на кнопку (Например, используй не фиксированные данные, а переменные). И затем выбери для каждой подходящей кнопки его (Можно его оформить в TActionList). Если их можно на разбить нанесколько схожих групп, то сделай несколько таких обработчиков. Это сообщение отредактировал(а) <Spawn> - 27.5.2003, 16:01 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| DriveSoftware |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 17.3.2003 Репутация: нет Всего: 4 |
Агромное Спасибо!
|
|||
|
||||
| Dapo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 18.4.2002 Репутация: нет Всего: 1 |
Можно воспользоваться св-м Tag:integer; Задай для каждой кнопки свой значение Tag-а. Button1.Tag:=0; Button2.Tag:=1 и т.д. А в универсальном обработчике OnClick выполни выбор через case
|
|||
|
||||
| DriveSoftware |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 17.3.2003 Репутация: нет Всего: 4 |
Dapo Уже все сделал, спасибо.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |