| 
| 
 | Вопрос # 6 225/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!Хочу написать компонент на базе TTreeview для работы с иерархическими структурами. Хочу при подключении компонента типа TAdoConnection вывести в свойстве "Имя таблицы" перечень таблиц по базе. Не могу добиться выпадающего списка в окне свойств компонента. Получала список, записывала его в свойство Tstrings. Список таблиц виден, но как сделать выбор для свойства string не могу додуматься...
 
|  |   Вопрос задала: Ak_el_a (статус: Посетитель)Вопрос отправлен: 16 июля 2012, 20:59
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 20 июля 2012, 09:09; участников в обсуждении: 2. 
|   | Ak_el_a (статус: Посетитель), 17 июля 2012, 16:25 [#1]:Еще меня интересует как задать порядок установки свойств. У меня есть следующие свойства в компоненте
 
 published
 { Published declarations }
 property InConnection: TADOConnection read FGetConnection write FSetConnection;
 
 Property InTbllist: tstrings read FInTblList write FInTblList;
 property InFieldList: tstrings read FInFieldList write FInFieldList;
 property InTbl: string read FInTbl write SetFInTbl;
 property InFieldId: string read FInFieldId write SetFInFieldId;
 property InFieldParentId: string read FInFieldParentId write
 SetFInFieldParentId;
 property InFieldName: string read FInFieldName write SetFInFieldName;
 property PopupMenu;
 property StartView: boolean read FStartView write SetStartView default false;
 
 
 Мне нужно сначала установить свойство InConnection, а только после InTbl, InFieldId,InFieldParentID, InFieldName.
 Однако при запуске проекта с этим компонентом сначала идет установка свойств InTbl, InFieldId,InFieldParentID, InFieldName и только после этого InConnection. Это категорически не правильно. Как изменить порядок установки свойств?
 |  
|   | Вадим К (статус: Академик), 19 июля 2012, 11:11 [#2]:Ваш код не должен полагаться на порядок установки свойств. Но если все таки нужен спецпорядок, то тогда просто нужно написать правильно. К примеру, если устанавливается свойство InTbl, а InConnection ещё не установлен, то код должен отметить себе где то, что он находиться в промежуточном состоянии (ожидание инициализации). И когда пользователь применит свойство InConnection, проставить все другие.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Ak_el_a (статус: Посетитель), 20 июля 2012, 09:05 [#3]:Я так в итоге и сделала. А как насчет создания перечисляемого свойства. Как отобразить список таблиц в редакторе свойства InTbl (что бы был выпадающий список для выбора)? |  
|   | Ak_el_a (статус: Посетитель), 20 июля 2012, 09:09 [#4]:И еще  - не получается затенить свойство PopupMenu. Контекстное меню у меня создается уже в компоненте. Объявила это свойство в published только для чтения. В итоге в конструкторе оно все равно отображается, но не устанавливается. Хотелось бы вообще убрать его из списка свойств. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |