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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2010, 22:49   #1
Mutagena
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 39
По умолчанию Динамическое задание событий

Возникла такая проблема, как динамическое задание событий для компонентов, создаваемых в рантайме.
Я вот так создаю кнопки:
Код:
            ButtonTables[k] := TButton.Create(Self);
            With ButtonTables[k] do
            begin
              left:= 405;
              top := 70;
              width := 30;
              height := 30;
            end;
            ButtonTables[k].Parent := GroupTables[k];
Каким образом мне задать событие для динамически-создаваемой кнопки? Например, OnClick?
Mutagena вне форума Ответить с цитированием
Старый 08.01.2010, 22:53   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Вот так:
Код:
  newButton.onClick := newButtonOnClick;
//где: newButton - ваша динамически созданная кнопка,
//newButtonOnClick - ваша процедура которая будет выполняться по нажатию на кнопку.
А лучше вот это посмотри - http://goo.gl/YwKd
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 08.01.2010, 22:54   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Уточню:
Код:
With ButtonTables[k] do
            begin
              left:= 405;
              OnClick:=MyButtonClick
...
Procedure TForm1.MyButtonClick(Sender:TObject);
begin
...
end;
Вот как то так
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.01.2010, 23:09   #4
Mutagena
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 39
По умолчанию

А процедуру объявлять нужно после процедуры, где происходит создание кнопок или после?
Попробовала перед и после, но получается ошибка
';' expected but '.' found.
в строке с объявлением процедуры.
Mutagena вне форума Ответить с цитированием
Старый 08.01.2010, 23:15   #5
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Процедуру сделай методом класса, т.е. объяви в секции приват или можно паблик, а реализацию уже делай дальше - в имплементейшен.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 08.01.2010, 23:18   #6
Mutagena
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 39
По умолчанию

Написала вот так:
Код:
type
  TMain = class(TForm)
  ...
  private
    { Private declarations }
  public
    procedure MyButtonClick(Sender:TObject);
  end;
Всё таже ошибка.
Mutagena вне форума Ответить с цитированием
Старый 08.01.2010, 23:22   #7
Mutagena
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 39
По умолчанию

Всё, разобралась. Имя формы неверно указывала. Всем спасибо.
Mutagena вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хроника событий sw3n Безопасность, Шифрование 0 19.11.2009 19:42
Динамическое создание событий Fandaret Общие вопросы Delphi 4 14.05.2009 04:20
Последовательность событий MAcK Общие вопросы Delphi 2 20.11.2008 14:36
Отлов событий Antoha Общие вопросы Delphi 3 26.10.2008 10:20
обработчик событий ben95 Помощь студентам 5 28.01.2008 17:46