Главная страница
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.036 c
14-1085206385
AlexG
2004-05-22 10:13
2004.06.13
Intel и AMD.


3-1084960375
Kein
2004-05-19 13:52
2004.06.13
Как создать базу с DEFAULT CHARACTER SET WIN1251


1-1086162527
Николя
2004-06-02 11:48
2004.06.13
Отладчик


3-1085388083
NewUser
2004-05-24 12:41
2004.06.13
Система безопасности в IB6


1-1085983350
DmitryNekl
2004-05-31 10:02
2004.06.13
Сохранение формы в файл и чтение из файла