Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2008, 09:03   #1
Fandaret
 
Регистрация: 23.12.2008
Сообщений: 6
По умолчанию Динамическое создание событий

Здравствуйте!
Динамически создается множество кнопок с порядковым номером в имени. Требуется создать обработчик события OnClick для каждой созданной кнопки, в котором бы переменной присваивался номер нажатой кнопки.

Код создания:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var NewButton: TButton;
begin
inc(ButtonsQ);
    NewButton:= Tbutton.Create(Form1);
    NewButton.Name := 'XButton'+inttostr(ButtonsQ);
    NewButton.Parent:=Form1;
    NewButton.Left := (ButtonsQ-1)*60;
    NewButton.Top := 1;
    NewButton.Height := 60;
    NewButton.Width := 60;
ButtonArray[ButtonsQ] := NewButton;
end;
ButtonArray – массив создаваемых кнопок
ButtonsQ – их количество
Fandaret вне форума Ответить с цитированием
Старый 28.12.2008, 09:40   #2
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Так не выйдет. Присваивай там свойству tag порядковый номер кнопки:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var NewButton: TButton;
begin
   inc(ButtonsQ);
   NewButton:= Tbutton.Create(Form1);
   ...
   newButton.tag := buttonsQ;
   newButton.onClick := newButtonOnClick;
   ...
   NewButton.Parent:=Form1;
end;
Обработчик создай им всем один. Предполагаю, что у них всех похожие назначения, я про кнопки. опиши эту процедуру.
А определять кнопку будешь по tag.
Например:
Код:
procedure{ процедура одрабодки }tForm1.newButtonOnClick(sender: tObject);
begin
   caption := intToStr(tButtons(sender).tag);
   { или так }
   showMessage(tButtons(sender).caption);
end;
Altera вне форума Ответить с цитированием
Старый 28.12.2008, 11:03   #3
Fandaret
 
Регистрация: 23.12.2008
Сообщений: 6
По умолчанию

Спасибо, все работает
P.S. С наступающим)
Fandaret вне форума Ответить с цитированием
Старый 14.05.2009, 04:10   #4
romanrakov
 
Регистрация: 10.05.2009
Сообщений: 8
По умолчанию

все тоже самое но с попменю проблему немогу решить
romanrakov вне форума Ответить с цитированием
Старый 14.05.2009, 04:20   #5
romanrakov
 
Регистрация: 10.05.2009
Сообщений: 8
По умолчанию

2 дня парился неделю искал в инете ответ и вот он вот оно решение тока всместо тбуттон вставил тменюитем
СПАСИБО РЕСПЕКТ И УВАЖУХА
СПАСИБО СПАСИБО СПАСИБО СПАСИБО СПАСИБО СПАСИБО СПАСИБО
romanrakov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание компонетов Ash Общие вопросы Delphi 4 07.12.2008 01:23
Динамическое создание объекта ANGa Помощь студентам 3 10.04.2008 18:14
Динамическое создание объекта Fruit Общие вопросы Delphi 5 24.01.2008 11:00
Динамическое создание объектов LepihinMS Общие вопросы Delphi 18 05.07.2007 23:31
создание журнала событий alshab Общие вопросы Delphi 3 20.05.2007 17:03