|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Обработчик на динамически созданный пункт меню
Код:
procedure ReceiveFile (FileName: String); begin ... //некое действие ... end; Код:
procedure TForm1.FormCreate(Sender: TObject); var mi: TMenuItem; LF: TStringList; i: Byte; begin ....................................... mi:= TMenuItem.Create(Self); mi.Caption:= LF[i]; mi.Hint:= Optns.ReadString(LF[i]); mi.OnClick:= //Вот тут и загвоздочка PopupMenu2.Items.Insert(1, mi); ................................................ end; |
#2
|
||||
|
||||
Делаешь метод, в параметрах Sender. Можно создать автоматом дабл-кликом на идентичном объекте (меню итем), потом убрать его как обработчик. Ну и назначаешь.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
Цитата:
|
#4
|
||||
|
||||
Код:
private { Private declarations } procedure Click1Click(Sender: TObject); Пишу программы за еду. __________________ |
#5
|
||||
|
||||
Цитата:
Еще вопрос в догонку: у TMenuItem есть свойство Hint: String, оно как то по-другому работает по сравнению с аналогичным свойсвом, например, у кнопки? Последний раз редактировалось Помидоркин, 16.02.2014 в 16:50. |
#6
|
||||
|
||||
На самом деле всё очень просто. Предварительно создаёте свой обработчик, идентичный по входным/выходным параметрам "родной" процедуре обработки для создаваемого компонента напр.
Код:
private procedure MyClick(Sender: TObject); ... procedure TForm1.MyClick(Sender: TObject); begin // здесь всё что нужно выполнить при событиии end; Код:
... mi.OnClick:=MyClick; ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Помидоркин (16.02.2014)
|
#7
|
||||
|
||||
Цитата:
|
#8
|
||||
|
||||
Тоже без проблем. У вас есть такой замечательный союзник в энтом деле, как Sender т.е. это тот кто вызвал это событие. Что вам надо, надпись на пункте меню? Тогда в обработчике
Код:
... if (Sender as TMenuItem).Caption = 'bla-bla' then // что-то делаем ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
||||
|
||||
А еще есть свойство TAG.
jmp $ ; Happy End! The Cake Is A Lie. |
#10
|
||||
|
||||
Цитата:
Код:
var FileName: String .... FileName:= (Sender as TMenuItem).Caption |
#11
|
||||
|
||||
Всё верно, это был пример. Прогресс!!!
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Помидоркин (16.02.2014)
|
#12
|
|||
|
|||
А для теории почитать вот это
http://www.delphikingdom.com/asp/vie...?catalogid=342 |