Конференция "KOL" » Написать компонент [Delphi, Windows]
 
  • RusSun © (08.10.12 18:24) [0]
    Доброе время суток.
    Сейчас пробую написать компонент для программ, написанных с
    помощью библиотеки KOL.
    Основная идея компонента не нова.
    Делаю recent menu.
    спотыкаюсь на следующем:
    "Когда добавляю пункты меню, то уезжает обработка пунктов меню,
    например выход(form.close)."

    Также сделал тестовую программу, полностью реализующую все функции будущего компонента.
  • QAZ2 (09.10.12 13:37) [1]
    уезжает наверн потому что один обработчик а там работа по индексу который естесна меняется при добавлении?
    нужно использовать tag
  • RusSun © (16.10.12 16:55) [2]
    to QAZ2
    можно ли тебе на ящик выслать? Посмотришь по подробнее.
  • QAZ5 (16.10.12 17:50) [3]
    а чего непонятно?
  • RusSun © (18.10.12 17:08) [4]
    Tag исользуется для подвешивания сообытия. А у меня при добавлении пункта меню без события смещается событие в главном меню. Точнее выход.
    Как tag должен мне в этом случае помочь?
  • QAZ5 (18.10.12 18:13) [5]

    > Tag исользуется для подвешивания сообытия

    в смысле? код есть?
  • RusSun © (25.10.12 08:44) [6]
    Уезжал, поэтому так долго. Вот код.
    http://narod.ru/disk/62919316001.255ab04016bb820c61c6164455953263/UseSim1.7z.html
    Вот на KOL без комонента
    http://narod.ru/disk/62919349001.164cfbc21d373bbf578bc8ed4cc7d2dd/Menu%20Dinamic5.8.5t.7z.html

    реализовано:
    --- сохранение/загрузка в ini
    --- сохранение/загрузка в register
    два режима добавления в конце maAppend
                         и в начало меню maInsert
    правильное удаление в обоих режимах

    немного специфичен путь к файлу сохраняется, но не явно
    в меню отражается имя дата и время открытия файла.
  • QAZ5 (26.10.12 12:10) [7]
    особо не впяливался в детали, но ты явно используеш в обработчике Item- индекс которого меняется, а надо tag который задаеш сам
    напримет для открыть=1 , для выхода=2,а для рецента из диапазона [1001..1005]
    соответсно в обработчике item используеш для работы с пунктами меню,а предварительно по tag определяеш по какому именно пункту ткнул
  • RusSun © (21.11.12 05:07) [8]
    когда добавляю свво tag говорит что
    [Pascal Error] KOLSim.pas(28): E2004 Identifier redeclared: 'tag'
  • Hallif © (22.11.12 13:50) [9]

    > когда добавляю свво tag

    свойство Tag уже имеется у каждого наследника TObj

    TObj = object( _TObj )
    ...
    property Tag: DWORD read fTag write fTag;
       {* Custom data field. }
    ...
    end;

  • RusSun © (28.11.12 18:49) [10]

    > напримет для открыть=1 , для выхода=2,а для рецента из диапазона
    > [1001..1005]

    можно простой пример чтобы посмотреть.
    > > когда добавляю свво tag
    >
    > свойство Tag уже имеется у каждого наследника TObj
    >
    > TObj = object( _TObj )
    > ...
    > property Tag: DWORD read fTag write fTag;
    >    {* Custom data field. }
    > ...
    > end;

    Спасибо. Как можно тогда реализовать?
  • QAZ9 (28.11.12 19:11) [11]
    procedure TForm1.MenuItem(Sender: PMenu; Item: Integer);
    begin
    case Sender.items[item].tag do
    1://новый файл
    2://открыть файл
    3://сохранить файл
    4://выход
    1001..1005://последние открытые
    end;
    end;


    ну уж как менять таг при добавлении думаю понятно, включая дизайнтайм ...
  • Eva (25.11.15 02:24) [12]
    Удалено модератором
 
Конференция "KOL" » Написать компонент [Delphi, Windows]
Есть новые Нет новых   [134427   +34][b:0][p:0.001]