Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Обращение к объектам   Найти похожие ветки 

 
renat-me ©   (2004-05-30 11:20) [0]

У меня создаются в проге имаджики посредством
 with TImage.create(???) do
 begin
 parent:=form1;
 name:="img1";
 ...
 end;

-Что ставить в скобках
-Как ссылаться к этим имаджикам? (findcomponent(...)as timage) что-то не пашет,работает, или я что-то не то делаю...


 
YurikGl ©   (2004-05-30 11:26) [1]

Если ничего не путаю, то

var
Image1:TImage;

...

Image1:=TImage.create(self);
Image1.parent:=form1;

....

Вместо Image1:TImage;
может быть ImageMas:array of TImage


 
Sergey Masloff   (2004-05-30 11:35) [2]

В скобках нужно указать компонент который будет владельцем создаваемого. И при своем уничтожении уничтожит всех тех кем он владеет. Если хочешь сам отвечать за время жизни создаваемого -> укажи в качестве владельца nil
 обращаться можно по-разному. А findcomponent КОГО ты вызываешь если не знаешь кого в скобках писать?


 
GuAV ©   (2004-05-30 11:36) [3]


> Image1:=TImage.create(self);
> Image1.parent:=form1;

имхо лучше в обоих строках одно и то же - self.


 
KilkennyCat ©   (2004-05-30 11:37) [4]

если не ошибаюсь, если разложить Ваш код без With, то получится:

TImage.create(???).parent:=form1;
TImage.create(???).name:="img1";


 
Sergey Masloff   (2004-05-30 11:50) [5]

KilkennyCat ©   (30.05.04 11:37) [4]
Ошибаешься. Create возвращает объект а дальше с этим объектом идет работа.


 
KilkennyCat ©   (2004-05-30 11:52) [6]


> Sergey Masloff   (30.05.04 11:50) [5]


Спасибо за пояснение.
Никогда не любил With...


 
YurikGl ©   (2004-05-30 11:55) [7]

Sergey Masloff

Коль зашла об этом речь, хотел спросить.

Если компонент лежит на форме и в RunTime я его удаляю и создаю вновь
DataModule1.SimpleDataSet1.free;
DataModule1.SimpleDataSet1:=TSimpleDataSet.Create(self);
DataModule1.SimpleDataSet1.Connection:=DataModule1.Connection1;

при завершении работы программы, SimpleDataSet1 будет удален или нет?


 
Palladin ©   (2004-05-30 11:57) [8]

"Вы не любите кошек? Вы просто не умеете их готовить!" (С) Альф.


 
KilkennyCat ©   (2004-05-30 12:05) [9]


> Palladin ©   (30.05.04 11:57) [8]


:)) согласен.


 
GuAV ©   (2004-05-30 12:06) [10]


> при завершении работы программы, SimpleDataSet1 будет удален
> или нет?

Если owner = self ( = скорее всего какая-то форма или Data Module ), то при удалении этого самого Self TSimpleDataSet тоже будет удален.

> если не ошибаюсь, если разложить Ваш код без With, то получится:

Проще всего понять with так:

with MyFunc do
begin
 Method1;
 Method2;
end;
аналогично
A=MyFunc
A.Method1
A.Method2
где A - локальная переменная.
Фактически если посмотреть откомпилированный код, то так и есть.


 
Sergey Masloff   (2004-05-30 13:43) [11]

YurikGl ©   (30.05.04 11:55) [7]

>при завершении работы программы, SimpleDataSet1 будет удален >или нет?
при завершении работы программы SimpleDataSet1 в любом случае ;-) А если написать self то он удалится в момент высвобождения датамодуля, программа может продолжать работать.

KilkennyCat ©   (30.05.04 11:52) [6]
>Никогда не любил With...
а так?

with TMyModalDlg.Create(Owner) do
try
 ShowModal();
finally
 Free();
end;

не надо лишней переменной и вообще... Я так пишу с самого начала просто на автомате. ИМХО самый лучший способ.



Страницы: 1 вся ветка

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
14-1085650155
Паниковский
2004-05-27 13:29
2004.06.13
Выход из Интернета кто искал???


3-1085389564
Alex_xxx
2004-05-24 13:06
2004.06.13
ODBC, комп на котором писалась прога и другой комп....


8-1080906407
Pa5ha
2004-04-02 15:46
2004.06.13
D3D, Местоположение точки


3-1084954827
Адмирал
2004-05-19 12:20
2004.06.13
Как узнать владельца БД из приложения? (InterBase/FireBird)


1-1086154319
zrv
2004-06-02 09:31
2004.06.13
Печать в MS-Word