Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по свойствам!!!


Arnold ©   (2004-09-23 11:18:00) 

КАк создать published свойство которое отображало бы список всех форм имеющихся в приложений.


panov   (2004-09-23 13:13:00) [1]

Рекомендуется:
--------------
- Пожалуйста, старайтесь, чтобы Ваши сообщения соответствовали тематике Форума.
- Корректно оформляйте заголовок ветки, который должен кратко отражать суть вопроса.
- Ветки, озаглавленные "Нужна помощь", "Срочно, горю", "Help", "Памогите, кто знаете" и т.п. будут удаляться в обязательном порядке.
- В Форуме принято отвечать за свои слова и следить за точностью и корректностью своих высказываний и сообщаемой информации.
- Не стоит использовать Форум для сообщений личного характера, которые не представляют интереса для других участников Форума.  Для этого существует электронная почта.
- Во избежание межнациональных споров, все сообщения в форуме должны быть на русском языке, в крайнем случае - латинице.
- Старайтесь избегать "оффтопиков". Добавляя свое сообщение, убедитесь, что оно соответствует обсуждаемой теме.
- Соблюдайте нетикет оформления веток. Не стоит "кричать" и привлекать внимания к своей теме используя прописные символы, восклицательные знаки в больших количествах и т.п.


Erik1   (2004-09-23 12:23:00) [2]

Думаю, что тут надо использовать колекцию. Вот тебе пример моего компонента:
 TAttribHolder = class(TComponent)
 private
   fAttribute: TStoredItems;
   fPanel: TPanel;
   fDataSet: TDataSet;
   fPrepareEvent: TNotifyEvent;
   fProvider: String;
   procedure SetObject(const Value: TStoredItems);
//    procedure BuildFilter
 protected
   procedure Notification(AComponent: TComponent; Operation: TOperation); override;
   procedure SetNotification;
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
   function ApplayFilter: Boolean;
 published
   property Attribute: TStoredItems read fAttribute write SetObject;
   property Panel: TPanel read fPanel write fPanel;
   property PrepareFilter: TNotifyEvent read fPrepareEvent write fPrepareEvent;
   property DataSet: TDataSet read fDataSet write fDataSet;
   property Provider: String read fProvider write fProvider;
 end;

 TItem = class(TCollectionItem)
 private
   fComps: TIntAtrib;
 protected
   procedure SetControl(Value: TWinControl);
   function  GetControl: TWinControl;
   function  GetDisplayName: string; override;
 public
   constructor Create(Collection: TCollection); override;
   procedure Assign(Source: TPersistent); override;
 published
   property Control: TWinControl read GetControl write SetControl;
   property Param: String read fComps.Param write fComps.Param;
   property Provider: String read fComps.Provider write fComps.Provider;
   property PType: TuserType read fComps.pType write fComps.pType;
 end;

 TStoredItems = class(TOwnedCollection) //TCollection)
 private
   function GetItem(Index: Integer): TItem;
   procedure SetItem(Index: Integer; StoredValue: TItem);
 public
   constructor Create(AOwner: TPersistent);
   function IndexOf(const Name: string): Integer;
   function Add: TItem;
   property Items[Index: Integer]: TItem read GetItem write SetItem; default;
 end;
Спрашивай чего непонятно, смотри свойство Attribute: TStoredItems


Arnold   (2004-09-23 11:33:00) [3]

Не давай тогда пока формы выкинем. Как вообще создать свойство published типа массив. Ну например массив строк. И можно было бы выбирать в этом массиве определенную строку из объектного инспектора.


Sandman25   (2004-09-23 11:29:00) [4]

[6] Arnold ©   (23.09.04 11:28)

Как Вы чувствительны к знакам препинания :)
Чтобы анализировать pas/dfm файл на предмет названия форм.


Arnold   (2004-09-23 11:28:00) [5]

Что за эксперт ИМХО?? ?=)


Sandman25   (2004-09-23 11:28:00) [6]

[4] Arnold ©   (23.09.04 11:26)

Неверно. У свойства может быть read метод, а не только read поле.


Sandman25   (2004-09-23 11:27:00) [7]

Хотя, чтобы получить список всех классов форм, которые могут быть созданы в приложении, придется писать эксперт ИМХО.


Sandman25   (2004-09-23 11:26:00) [8]

Почитайте DEL6CW.HLP в $Delphi\Help. Там все описано.


Arnold   (2004-09-23 11:26:00) [9]

В published свойство вроде (или может я ошибаюсь) можно только затолнуть определенный набор данных, а мне надо динамический


Arnold   (2004-09-23 11:23:00) [10]

Я знаю что есть просто не совсем понимаю как создать список в published свойстве


Sandman25   (2004-09-23 11:21:00) [11]

Зачем?

В Screen все уже есть.


Наверх

Титульная страница Поиск, карта сайта Написать письмо