Конференция "KOL" » Динамическое создание меню [KOL, Windows]
 
  • KOLBoss © (17.11.07 15:20) [0]
    Подскажите как это зделать
    Пробывал но даже скомпилить не смог
    PopupMenu1.AddItem(ACaption, Event, TMenuOptions);


    что нухно писать в TMenuOptions
    и как реолезовать событие
    зарание благодарен.
  • KOLBoss © (17.11.07 17:59) [1]
    Всё разобрался

    type
    procedure Event(Sender: PMenu; Item: Integer);
    ...
    PopupMenu1.AddItem('ACaption', Event, []);

  • Danger © (17.11.07 18:28) [2]
    Если пункты меню не изменяются во время выполнения программы - посмотрите создание меню в уроке №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;

  • D[u]fa © (17.11.07 18:51) [3]
    а зачем OnMenuItem( MakeMethod( nil, @TForm1.OnMyItemClicked ) ) в данном случае мона просто OnMyItemClicked
  • Danger © (17.11.07 20:06) [4]

    > D[u]fa ©   (17.11.07 18:51) [3]
    > а зачем OnMenuItem( MakeMethod( nil, @TForm1.OnMyItemClicked
    > ) ) в данном случае мона просто OnMyItemClicked

    Да, конечно ;) Я взял кусок из старого проекта, запостил и потом только заметил, что не выкинул лишнее (в оригинале обработчиком была процедура - не метод объекта формы). Спохватился, но так как работало, второй раз писать не стал.
 
Конференция "KOL" » Динамическое создание меню [KOL, Windows]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]