Re: создание собственного компонента в Delphi
От: Softwarer http://softwarer.ru
Дата: 24.08.04 12:04
Оценка:
Здравствуйте, VooDoo-KB, Вы писали:

VK>Все бы хорошо, но вот в одном месте кода возникает непонятная ошибка!


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

VK>//а дальше 3 варианта и ни один не работает ???

VK>{1 вариант для случая FIELDS_DB:TCOmboBox ???}

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

Начал ты неплохо, но несколько ошибок все же сделал.

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

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

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

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