![]() |
|
|
![]()
|
|
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
Подскажите начинающему.
Создаю динамически компонент. Как можно все его свойства скопировать с уже существующего компонента? Простым "=" естественно не катит - получается обычная ссылка. Тогда как? --------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Некоторые классы поддерживают метод Assign, но в вашем случае, мне кажется можно попроще сделать. Расскажите подробнее - какой компонент и зачем вы создаете.
|
|||
|
||||
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
Создаю ADOQuery, чтобы через него выполнять дополнительные запросы sql.
--------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Assign
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
| Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: 20 Всего: 25 |
Что-то типа:
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
Понятно, спасибо большое.
Anikmar,
А можно поподробнее, что за модули данных, и параметризированные запросы? --------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Создавать динамически объект TADOQuery может понадобится, чтобы формировать запрос на лету. Однако на практике я обнаружил, что такой метод несколько неудобен - нужно много не забыть, настроить подключение и т.п. К тому же, как правило запрос сводится к тому, чтобы поставить разное условие или порядок сортировки. Модули данных - это специальные формы в Билдере, преднезначенные для хранения невизульных компонентов, каковым является TADOQuery. Создается он обычным образом - File->New->DataModule Затем в него помещаются компоненты TADOQuery. Допустим нам нужно получить запрос, который выдает все записи, удовлетворяющие условию: значение какого - либо поля равно переменной в программе. При динамическом создании компонента мы должны: 1. Создать его 2. Сформировать подключение 3. Сформировать строку запроса 4. Обработать данные 5. Уничтожить объект. При использовании модуля данных - создаем запрос в дизайн-тайме, устанавливаем параметры подключения и вводим готовую строку запроса: SELECT * FROM Table WHERE Field = :pFieldValue :pFieldValue - это и есть параметр запроса. В тексте программы достаточно написать: MyQuery->Parameters->ParamByName("pFiledValue")->Value = ... Значение поля ... И открыть запрос MyQuery->Open(); Удобство такого подхода: Меньше ошибок при динамической генерации SQL команды (особенно, если она достаточно сложная) Удобство доступа к полям запроса - так как компоненты TField создаются в дизайн-тайме и нет нужды их создавать вручную. Удобство корректировки запроса: если структура таблицы поменялась (на этапе разработки новой системы это случается) - то ясно где менять тексты запросов, все запросы находятся в модулях данных и их проще поменять. А менять в тексте программы, особенно, елси таких запросов несколько, будет более трудоемко. |
|||
|
||||
| SkyHawk |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 17.8.2006 Где: г. Новосибирск Репутация: 1 Всего: 2 |
Понятно. То, что надо. Спасибо большое.
--------------------
Быть может все, что может быть, И даже то, что быть не может. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |