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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2009, 08:23   #1
antsa
Новичок
Джуниор
 
Регистрация: 13.02.2009
Сообщений: 2
По умолчанию Динамические кнопки

Доброго дня. Вопрос я динамически создал кнопки
Код:
        begin
          SetLength(MyMasBut,Length(MyMasBut)+1);
          MyMasBut[Length(MyMasBut)-1]:=TButton.Create(self);
          MyMasBut[Length(MyMasBut)-1].Parent:=Form1;
          MyMasBut[Length(MyMasBut)-1].Height:=40;
          MyMasBut[Length(MyMasBut)-1].Width:=250;
          MyMasBut[Length(MyMasBut)-1].Left:=639;
          MyMasBut[Length(MyMasBut)-1].Top:=250+Length(MyMasBut)*80;
          MyMasBut[Length(MyMasBut)-1].Caption:=Sr.Name;
          @MyMasBut[Length(MyMasBut)-1].OnClick:=@TForm1.MyProcOnClick;
        end;
кнопки храняться в динамическом массиве который описан
Код:
MyMasBut : array of TButton;
и есть фунция моя
Код:
procedure TForm1.MyProcOnClick(DirName:string);
begin

end;
Как видно выше она является обработчиком событий клика мыши на созданной кнопке. Уважаемые знатоки, внимание вопрос: "Как узнать по какой кнопке был произведен клик?"
Т.е. мне нужно знать имя кнопки (Caption) по которой произведен клик. пытаюсь передать это в параметрах
Код:
@MyMasBut[Length(MyMasBut)-1].OnClick:=@TForm1.MyProcOnClick(Sr.Name);
пишет что This form method call only allowed dor class method
так как узнать имя кнопки?
antsa вне форума Ответить с цитированием
Старый 13.02.2009, 09:15   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Код:
procedure TForm1.MyProcOnClick(DirName:string);
begin

end;
Нужно так :
Код:
procedure TForm1.MyProcOnClick(Sender: TObject);
begin
  Cap := (Sender as TButton).Caption; // вот тут и будет тебе заголовок нажатой кнопки
end;
Именно через конструкцию (Sender as TButton) ты получаешь доступ к кнопке ....
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 13.02.2009, 09:23   #3
antsa
Новичок
Джуниор
 
Регистрация: 13.02.2009
Сообщений: 2
По умолчанию

Да. Уже понял. Вот здесь написано это:
http://programmersforum.ru/showthread.php?t=34547
antsa вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UCOZ: Кнопки кнопки на изображении ReDuX HTML и CSS 19 25.04.2008 02:39
триггерные кнопки и кнопки переключатели в DELPHI MARGO Помощь студентам 3 12.11.2007 17:35
динамические масивы mrandrey Общие вопросы Delphi 14 11.04.2007 15:14