Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.026 c
3-1085054789
pok
2004-05-20 16:06
2004.06.13
Interbase .... уходит слишком много времени...


14-1085835393
p.0$a
2004-05-29 16:56
2004.06.13
HELP plz


3-1085165794
ertong
2004-05-21 22:56
2004.06.13
Две транзакции


14-1085212962
Ozone
2004-05-22 12:02
2004.06.13
Алгоритм сравнения кодов


14-1085419845
Lm
2004-05-24 21:30
2004.06.13
shell+XP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский