Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копирование компонента 
:(
    Опции темы
SkyHawk
Дата 8.5.2007, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: 1
Всего: 2



Подскажите начинающему.
Создаю динамически компонент. Как можно все его свойства скопировать с уже существующего компонента? Простым "=" естественно не катит - получается обычная ссылка. Тогда как?
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
Anikmar
Дата 8.5.2007, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Некоторые классы поддерживают метод Assign, но в вашем случае, мне кажется можно попроще сделать. Расскажите подробнее - какой компонент и зачем вы создаете.
PM MAIL ICQ   Вверх
SkyHawk
Дата 8.5.2007, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: 1
Всего: 2



Создаю ADOQuery, чтобы через него выполнять дополнительные запросы sql.
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
Vyacheslav
Дата 8.5.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Assign


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Anikmar
Дата 8.5.2007, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(SkyHawk @  8.5.2007,  10:21 Найти цитируемый пост)
Создаю ADOQuery, чтобы через него выполнять дополнительные запросы sql. 

А нужно ли его создавать динамически?
Я пользуюсь модулями данных и парметризированными запросами, мне кажется гораздо удобнее.
PM MAIL ICQ   Вверх
Klin
Дата 8.5.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Что-то типа:
Код

 ТКомпонент Компонент_2 = new TКомпонент;
 Компонент_2->Assing(Компонент_1);



--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
SkyHawk
Дата 10.5.2007, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: 1
Всего: 2



Понятно, спасибо большое. 

Anikmar, 
Цитата(Anikmar @  8.5.2007,  11:28 Найти цитируемый пост)
Я пользуюсь модулями данных и парметризированными запросами, мне кажется гораздо удобнее. 


А можно поподробнее, что за модули данных, и параметризированные запросы? 
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
Anikmar
Дата 10.5.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(SkyHawk @  10.5.2007,  05:38 Найти цитируемый пост)
А можно поподробнее, что за модули данных, и параметризированные запросы?  


Создавать динамически объект 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 создаются в дизайн-тайме и нет нужды их создавать вручную.
Удобство корректировки запроса: если структура таблицы поменялась (на этапе разработки новой системы это случается) - то ясно где менять тексты запросов, все запросы находятся в модулях данных и их проще поменять. А менять в тексте программы, особенно, елси таких запросов несколько, будет более трудоемко.
PM MAIL ICQ   Вверх
SkyHawk
Дата 10.5.2007, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: 1
Всего: 2



Понятно. То, что надо. Спасибо большое.
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0489 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.