Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

создание указателя на объект [D7, 2000]


s77 ©   (2005-12-01 14:50:00) 

procedure
var
   AdoQ: TADOQuery;
begin
  // AdoQ:=TADOQuery.Create(Self);
   if PageControl1.Pages[0].Visible then AdoQ:=ADOQuery1 else AdoQ:=ADOQuery2;
   
 работа с AdoQ

   AdoQ.free;
end;

последняя строка убивает ADOQuery1  или ADOQuery2 Нужна ли она
правильно ли я делаю.


Anatoly Podgoretsky   (2005-12-01 15:53:00) [1]

Приведеный код правильный, а если раскомментируешь строку, то будет неправильно.


s77   (2005-12-01 15:39:00) [2]

спасибо


Ega23   (2005-12-01 15:34:00) [3]


> AdoQ  - что это такое получилось объект который скопировал
> ADOQuery1 или псевдоним
> что станет с adoQ после выхода из процедуры - освободится
> ли память (create его я не делаю)


Нет. AdoQ - это указатель на объект типа TADOQuery. Когда ты ему ставишь
if PageControl1.Pages[0].Visible then AdoQ:=ADOQuery1 else AdoQ:=ADOQuery2;
то всего лишь получаешь указатель на объект либо ADOQuery1, либо ADOQuery2.
Т.е. получаешь адрес нужного тебе объекта.


s77   (2005-12-01 14:57:00) [4]

AdoQ  - что это такое получилось объект который скопировал ADOQuery1 или псевдоним
что станет с adoQ после выхода из процедуры - освободится ли память (create его я не делаю)


Ega23   (2005-12-01 14:52:00) [5]


> последняя строка убивает ADOQuery1  или ADOQuery2 Нужна
> ли она
> правильно ли я делаю.


Не нужна. Если, конечно, ты не хочешь, чтобы ADOQuery1  или ADOQuery2 убились нафиг.


Наверх

Титульная страница Поиск, карта сайта Написать письмо