Re[2]: создание собственного компонента в Delphi
От: VooDoo-KB Россия  
Дата: 25.08.04 06:46
Оценка:
Здравствуйте, Softwarer, Вы писали:

S>На будущее — хорошо бы все-таки объяснять, в чем именно ошибка.


В этом Вы абсолютно правы правы. Дело в том, что свойство DataSet_DB в моем случае работает и в режиме проектирования пользователь может из списка выбрать нужный НД. Проблема заключается именно в свойстве Field_DB.Все 3 моих примера, иллюстрирующих разные способы заполнения свойства Field_DB, не могут быть выполнены. возникающая ошибка впринципе ничего ценного в себе не несет...в ней указываются какие-то 0000ххх адреса непонятно чего...

S>Если ты хочешь, чтобы в Fields_DB было поле — оно должно быть типа TField. Имя поля — string.


А вот над этим мне стоит задуматься и попробывать использовать предложенный Вами тип.

S>1) Полезно иногда смотреть места, где аналогичная задача уже решена. Например, в TDBEdit делается именно что выбор поля из датасета, да и в других db-компонентах — тоже. Исходники VCL доступны.


Смотрел. Но ничего ценного для себя не нашел.

S>2) Брать список полей из датасета — плохое решение, поскольку в дизайн-тайме датасет обычно закрыт, и полей у него нет. Дельфа, кстати, тут тоже не очень хорошо работает. Можно — очень аккуратно попытаться открыть датасет, взять имена полей, потом закрыть — но при этом никакой ругани, если открыть не удалось, и должна быть возможность набрать имя поля руками.


Нет ничего проще активировать(и пусть он всегда открыт) датасет и брать из него поля.Я так и действовал.

S>3) Есть такая штука — property editors & component editors. Желающему писать компоненты нужно про них знать.


Вы не подскажете где с этой "штукой" можно ознакомиться?

S>4) Таким образом вряд ли удастся хорошо реализовать идею, лежащую в основе твоего компонента. На самом деле хороший справочник делается не на основе комбобокса и намного сложнее, но по минимуму — нужно делать запрос наподобие select distinct record_id, record_name from records. Датасет не даст тебе информации, которая позволит эффективно использовать твой комбобокс.


Этот компонент планируется НЕ для создания "справочников", а как вспомогательный, частоиспользуемый элемент при работе с БД. А до запросов мне еще нужно дойти(если они вообще будут применяться).
На данном этапе для меня стоит задача заполнения свойства Field_DB. Мне совершенно непонятно почему предложенные мной варианты не могут быть осуществимы, ведь с синтаксической точки зрения они выполнены правельно.??? Мне очень интересно ознакомиться с Вашим мнением по этому поводу, ведь порой люди так погружены в работу, что перестают замечать простого решения у себя перед носом(в данном случае, это наверное я) и свежая,пускай даже простая, идея другого человека может очень сильно помочь.

Спасибо за внимание.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.