![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
создание указателя на объект [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 убились нафиг.