-
Доброе время суток. Сейчас пробую написать компонент для программ, написанных с помощью библиотеки KOL. Основная идея компонента не нова. Делаю recent menu. спотыкаюсь на следующем: "Когда добавляю пункты меню, то уезжает обработка пунктов меню, например выход(form.close)."
Также сделал тестовую программу, полностью реализующую все функции будущего компонента.
-
уезжает наверн потому что один обработчик а там работа по индексу который естесна меняется при добавлении? нужно использовать tag
-
to QAZ2 можно ли тебе на ящик выслать? Посмотришь по подробнее.
-
а чего непонятно?
-
Tag исользуется для подвешивания сообытия. А у меня при добавлении пункта меню без события смещается событие в главном меню. Точнее выход. Как tag должен мне в этом случае помочь?
-
> Tag исользуется для подвешивания сообытия
в смысле? код есть?
-
-
особо не впяливался в детали, но ты явно используеш в обработчике Item- индекс которого меняется, а надо tag который задаеш сам напримет для открыть=1 , для выхода=2,а для рецента из диапазона [1001..1005] соответсно в обработчике item используеш для работы с пунктами меню,а предварительно по tag определяеш по какому именно пункту ткнул
-
когда добавляю свво tag говорит что [Pascal Error] KOLSim.pas(28): E2004 Identifier redeclared: 'tag'
-
> когда добавляю свво tag
свойство Tag уже имеется у каждого наследника TObj
TObj = object( _TObj )
...
property Tag: DWORD read fTag write fTag;
...
end;
-
> напримет для открыть=1 , для выхода=2,а для рецента из диапазона > [1001..1005]
можно простой пример чтобы посмотреть. > > когда добавляю свво tag > > свойство Tag уже имеется у каждого наследника TObj > > TObj = object( _TObj ) > ... > property Tag: DWORD read fTag write fTag; > {* Custom data field. } > ... > end;
Спасибо. Как можно тогда реализовать?
-
procedure TForm1.MenuItem(Sender: PMenu; Item: Integer);
begin
case Sender.items[item].tag do
1: 2: 3: 4: 1001..1005: end;
end; ну уж как менять таг при добавлении думаю понятно, включая дизайнтайм ...
-
Удалено модератором
|