![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическое создание меню [KOL, Windows]
KOLBoss © (2007-11-17 15:20:00)Подскажите как это зделать
Пробывал но даже скомпилить не смог
PopupMenu1.AddItem(ACaption, Event, TMenuOptions);
что нухно писать в TMenuOptions
и как реолезовать событие
зарание благодарен.
Danger (2007-11-17 20:06:00) [1]
> D[u]fa © (17.11.07 18:51) [3]
> а зачем OnMenuItem( MakeMethod( nil, @TForm1.OnMyItemClicked
> ) ) в данном случае мона просто OnMyItemClicked
Да, конечно ;) Я взял кусок из старого проекта, запостил и потом только заметил, что не выкинул лишнее (в оригинале обработчиком была процедура - не метод объекта формы). Спохватился, но так как работало, второй раз писать не стал.
D[u]fa (2007-11-17 18:51:00) [2]а зачем OnMenuItem( MakeMethod( nil, @TForm1.OnMyItemClicked ) ) в данном случае мона просто OnMyItemClicked
Danger (2007-11-17 18:28:00) [3]Если пункты меню не изменяются во время выполнения программы - посмотрите создание меню в уроке №7 "Программа в треe с легкостью"из цикла уроков по KOL/MCK, и делайте меню в рантайме, примерно как там описано. В примерах тоже может есть.
Если надо добавить пункт в уже существующее меню, тогда примерно так:
procedure TForm1.Button1Click(Sender: PObj);
begin
PM.AddItem( 'My Item', TOnMenuItem( MakeMethod( nil, @TForm1.OnMyItemClicked ) ), [ ] );
end;
procedure TForm1.OnMyItemClicked(Sender : PMenu; Item : Integer );
begin
msgOk( ' Message ' );
end;
KOLBoss (2007-11-17 17:59:00) [4]Всё разобрался
type
procedure Event(Sender: PMenu; Item: Integer);
...
PopupMenu1.AddItem('ACaption', Event, []);