Конференция "Компоненты" » Свойство типа TShortCut
 
  • TStas (06.05.12 17:16) [0]
    У только что написанного компонента есть три свойства типа TShortCut - это клавиши быстрого вызова соответствующих Action'ов. Но почему-то они в инспекторе объектов показываются как просто числа, а не как, например, Ctrl + F и т. п.
    Один способ, как заставить их появляться в виде выпадающего списка я зщнаю. Это написать свой редактор свойства. Но неужели Дельфи, вернее, Object inspector, не знает, что есть такой тип, как TShortCut и что для него надо создавать выпадающий список?
    Ещё раз: сами свойствыа имеют тип именно TShortCut, а не Word.
  • Добро (06.05.12 22:02) [1]
    VCLEditors.pas
  • TStas (06.05.12 22:39) [2]
    А ещё, как оказалось, надо регистрировать   RegisterPropertyEditor(TypeInfo(TShortCut), TStReplacer,'', TShortCutProperty);
    Все равно спасибо за ответ. НО мне так или иначе пришлось писать редактор компонента, в его REgister зарегистрировал и строчку, написанную выше.
    А вот ещё вопрос: есть свойства, которые я объявил как type string, чтобы написать редактор свойств. Но для того, чтобы редактировать значения, там нужны не только сами значения, но и ссылка на сам компонент, чьи эти значения. Пока все редактируется в редакторе компонента, а нельзя ли как-то в редакторе свойства получить ссылку на компонент, чьё это свойство?
  • DimaBr © (07.05.12 09:24) [3]
    Так как вы можете выбрать сразу несколько компонентов в дизайнере, то и достучаться до них можно только по индексу
    TPropertyEditor = class(TBasePropertyEditor, IProperty)
       function GetComponent(Index: Integer): TPersistent;
     end;

  • TStas (07.05.12 20:16) [4]
    >DimaBr Спасибо за ответ. А ссылку на компонент в редакторе свойства самого компонента, наверное, не получишь? Само свойство - это строчка, в котрой перечислены через запятую TMenuItem, с коорыми связан компонент. Чтобы это свойство редактировать, одной строчки текста мало, нужен ещё и владелец компонента, чтобы заполнить возможные значения.
    function GetComponent(Index: Integer): TPersistent; //А как узнать общее число выделенных компонентов?
  • DimaBr © (08.05.12 10:19) [5]
    >А как узнать общее число выделенных компонентов?


     IOTAFormEditor = interface(IOTAEditor)
       function GetSelCount: Integer;
     end;

 
Конференция "Компоненты" » Свойство типа TShortCut
Есть новые Нет новых   [118638   +34][b:0][p:0.001]