Текущий архив: 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.47 MB
Время: 0.022 c