Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

PropertyEditor, paSubProperties   Найти похожие ветки 

 
Kair ©   (2004-11-02 09:42) [0]

Как сделать PropertyEditor свойства, чтобы свойство было со знаком "+" в ObjectInspector?
В справке написано, что надо переписать метод GetAttributes так
function GetAttributes: TPropertyAttributes;
begin
Result := [paSubProperties];
end;
А вот дальше в справке написано, что надо еще переписать метод procedure GetProperties(Proc: TGetPropProc); Только вот я не знаю, что там надо написать... И у меня получается, если не переписывать этот метод, то, что в ObjectInspector плюс рисуется, и по нажатию на него вместо "+" рисуется "-", но подсвойств не видно...


 
code2k ©   (2004-11-02 10:15) [1]

TCurentRowStyle = class(TPersistent)
 private
   FControl: TControl; // Grid Control
   FOnChange: TNotifyEvent;
   FColor: TColor;
   FUseColor: Boolean;
   procedure SetColor(const Value: TColor);
   procedure SetUseColor(const Value: Boolean);
 protected
   procedure Change; dynamic;
   property Control: TControl read FControl;
 public
   constructor Create(Control: TControl); virtual;
   property OnChange: TNotifyEvent read FOnChange write FOnChange;
 published
   property Color: TColor read FColor write SetColor default clNone;
   property UseColor: Boolean read FUseColor write SetUseColor default False;
 end;

 TCustomGridMy = class(TCustomControl)
 private
   FCurentRowStyle: TCurentRowStyle;
   procedure SetCurentRow(const Value: TCurentRowStyle);
 protected
 public
 published
   property CurentRowStyle: TCurentRowStyle read FCurentRowStyle write SetCurentRow;
 end;


 
Юрий Зотов ©   (2004-11-02 12:59) [2]

> code2k ©   (02.11.04 10:15) [1]

Извините, а какое же это имеет отношение к сабжу?

> Kair ©   (02.11.04 09:42)

Если Ваш объект является потомком TPersistent (но не TComponent) и его нужные свойства (не поля, а именно свойства) находятся в секции published, то после включения paSubProperties плюсик будет работать правильно сам по себе и список свойcтв тоже появится сам по себе (а если это все же не так, значит, что-то сделано неверно и нужно видеть код).

Если же хотя бы одно из этих двух условий не выполняется, то придется делать список ручками. Как именно - посмотрите в коде TClassProperty.GetProperties.


 
code2k ©   (2004-11-03 18:52) [3]


> Юрий Зотов ©   (02.11.04 12:59) [2]

По просьбе автора вопроса, перенесено из чата.
Сори, если не по теме, мы сначала не поняли друг друга, о чем ведем речь.


 
jack128 ©   (2004-11-03 19:01) [4]

Юрий Зотов ©   (02.11.04 12:59) [2]
Извините, а какое же это имеет отношение к сабжу?


Как это какое?? Это же как раз илюстрация вашего поста, о том какие условия должны выполняться, чтобы "плюсик" работал сам по себе ;-)



Страницы: 1 вся ветка

Форум: "Компоненты";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
3-1120393111
serguncho
2005-07-03 16:18
2005.09.18
Как правильно установить FireBird сервер?


3-1122840486
Глюкоман
2005-08-01 00:08
2005.09.18
Глюк в параметризированном запросе


3-1123392268
Ольга
2005-08-07 09:24
2005.09.18
Как грамотнее открывать/закрывать соединение с базой


14-1124629161
JumbaBumba
2005-08-21 16:59
2005.09.18
мебель


14-1123446350
alex-drob
2005-08-08 00:25
2005.09.18
Как определить поломку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский