Главная страница
    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.043 c
3-1085232972
Cyber
2004-05-22 17:36
2004.06.13
Создание Alias-ов


4-1083936626
shell_rom
2004-05-07 17:30
2004.06.13
Apollo


4-1083922189
Pavel Mikhailov
2004-05-07 13:29
2004.06.13
Id потока-> HANDLE процесса


1-1086071689
new
2004-06-01 10:34
2004.06.13
Чтение файла


1-1085943680
Gestapo
2004-05-30 23:01
2004.06.13
UNICODE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский