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

Вниз

OnCreate, OnDestroy   Найти похожие ветки 

 
!_SM_!   (2006-08-12 18:21) [0]

Будет ли уничтожен BitMap

var BitMap: TBitMap;  //глобальная переменная

procedure TForm1Create(Sender: TObject);
begin
 BitMap:=TBitMap.Create;
end;

автоматически на Destroy формы?


 
Sapersky   (2006-08-12 18:27) [1]

Автоматически уничтожаются только компоненты (если при создании указать в качестве parent форму).


 
!_SM_!   (2006-08-12 18:30) [2]

OnCreate
Событие OnCreate возникает при создании TForm и только один раз. При создании формы (у каторой свойство Visible установлено в True), события произойдут в следующем порядке: OnCreate, OnShow, OnActivate, OnPaint.
В обработчике события OnCreate можно сделать какие-либо инициализационные действия, однако, любые объекты созданные в OnCreate будут уничтожены в событии OnDestroy.


Это я взял с Delphi Russian Knowledge Base
Или не так?


 
Fay ©   (2006-08-12 18:36) [3]

2 Sapersky   (12.08.06 18:27) [1]
Не parent, а owner

2 !_SM_!   (12.08.06 18:30) [2]
> Будет ли уничтожен BitMap
Нет, не будет.
> Это я взял с Delphi Russian Knowledge Base
Не читал. И ты не читай.


 
Пусик ©   (2006-08-12 18:37) [4]


> Это я взял с Delphi Russian Knowledge BaseИли не так?


Не так.
Будут уничтожены любые объекты, владельцами которых является форма.
И так по нисходящей-)


 
Пусик ©   (2006-08-12 18:38) [5]


> Fay ©   (12.08.06 18:36) [3]
>  Не читал.
>  И ты не читай.


Мысли пачкают мозги.


 
!_SM_!   (2006-08-12 18:38) [6]

Или нужно исправить любые объекты имеющие владельца форму будут...
ДА так и ежу понятно
У BitMap"a нет Parent"a


 
Fay ©   (2006-08-12 18:39) [7]

2 Пусик ©   (12.08.06 18:38) [5]
Не понял


 
!_SM_!   (2006-08-12 18:40) [8]

> [3] Fay ©   (12.08.06 18:36)

Также нет Owner"a


 
Fay ©   (2006-08-12 18:42) [9]

2 !_SM_!   (12.08.06 18:40) [8]
1) Я в курсе
2) Речь шла о наследниках TComponent


 
!_SM_!   (2006-08-12 18:42) [10]

> [4] Пусик ©   (12.08.06 18:37)

Т.е. там не правда (не совсем правда) написана, и всех неимеющих родителя объектов, созданных на OnCreate формы (главного родителя), нужно самому "убивать".


 
Fay ©   (2006-08-12 18:45) [11]

2 !_SM_!   (12.08.06 18:42) [10]
Там написана бредятина. За фразу "уничтожены в событии" надо ваще руки оторвать.


 
!_SM_!   (2006-08-12 18:46) [12]

> [11] Fay ©   (12.08.06 18:45)


> За фразу "уничтожены в событии" надо ваще руки оторвать.

Не понял.


 
Fay ©   (2006-08-12 18:48) [13]

2 Пусик ©   (12.08.06 18:37) [4]
> Будут уничтожены любые объекты
Совсем любые?
> владельцами которых является форма
Владельцами? А м.б. сеньорами? 8)


 
Fay ©   (2006-08-12 18:48) [14]

2 !_SM_!   (12.08.06 18:46) [12]
В событии - это где, по-твоему?


 
!_SM_!   (2006-08-12 18:52) [15]

> [13] Fay ©   (12.08.06 18:48)


> [4] Пусик ©   (12.08.06 18:37)

Наверное всетаки не владельцами которых является форма
а (про)родителем...


 
!_SM_!   (2006-08-12 18:53) [16]

> [15] !_SM_!   (12.08.06 18:52)

т.е. Owner


 
Fay ©   (2006-08-12 18:53) [17]

2 !_SM_!   (12.08.06 18:52) [15]
> а (про)родителем...
А это хто такой?


 
Fay ©   (2006-08-12 18:54) [18]

2 !_SM_!   (12.08.06 18:53) [16]
owner
   сущ.  1) владелец; собственник, хозяин


 
!_SM_!   (2006-08-12 18:54) [19]

> [14] Fay ©   (12.08.06 18:48)

Всеравно не понял твою мысль...
Кому руки отрывать, за какое уничтожение в событии....


 
!_SM_!   (2006-08-12 18:55) [20]

> [18] Fay ©   (12.08.06 18:54)

Parent - это владелец
а Owner - родитель.


 
Fay ©   (2006-08-12 18:56) [21]

2 !_SM_!   (12.08.06 18:54) [19]
> Всеравно не понял твою мысль...
По-твоему, "в событии" - это где?


 
!_SM_!   (2006-08-12 18:56) [22]

> [20] !_SM_!   (12.08.06 18:55)


Edit:=Tedit.Create(Form1);
Edit.Parent:=Panel1;

Form1- родитель
Panel1 - Владелец


 
!_SM_!   (2006-08-12 18:57) [23]

> [21] Fay ©   (12.08.06 18:56)

Ладно, не грузи.... :))


 
!_SM_!   (2006-08-12 19:00) [24]

> [22] !_SM_!   (12.08.06 18:56)

И по моему владелец не уничтожает своих... как их там ... кем владеет.


 
Юрий Зотов ©   (2006-08-12 19:02) [25]

> !_SM_!   (12.08.06 18:56) [22]

Все ровно наоборот.


 
!_SM_!   (2006-08-12 19:02) [26]


> [24] !_SM_!   (12.08.06 19:00)

Не совсем корректная поправка к
> [4] Пусик ©   (12.08.06 18:37)


 
!_SM_!   (2006-08-12 19:03) [27]

> [25] Юрий Зотов ©   (12.08.06 19:02)

Что именно наоборот?


 
Fay ©   (2006-08-12 19:04) [28]

2 !_SM_!   (12.08.06 19:03) [27]
Зайди на lingvo.ru да переведи "owner" и "parent"


 
Fay ©   (2006-08-12 19:06) [29]

2 !_SM_!   (12.08.06 19:00) [24]
> И по моему владелец не уничтожает своих... как их там ... кем владеет.
А что он с ними делает? Дань собирает?


 
!_SM_!   (2006-08-12 19:09) [30]

> [25] Юрий Зотов ©   (12.08.06 19:02)


Т.е. да неправильно, перепутал их

Edit:=Tedit.Create(Form1);
Edit.Parent:=Panel1;

Form1- Владелец
Panel1 - родитель

Edit:=Tedit.Create(Panel1);
Edit.Parent:=Form1;
Panel1.Free;

Кто будет Owner"ом у едита?


 
Fay ©   (2006-08-12 19:11) [31]

2 !_SM_!   (12.08.06 19:09) [30]
> Кто будет Owner"ом у едита?
Form1.
Ты сам его назначил в Tedit.Create(Form1)


 
!_SM_!   (2006-08-12 19:16) [32]

> [31] Fay ©   (12.08.06 19:11)

Edit:=Tedit.Create(Panel1);
Edit.Parent:=Form1;
Panel1.Free;

Кто будет Owner"ом у едита?


 
Fay ©   (2006-08-12 19:20) [33]

2 !_SM_!   (12.08.06 19:16) [32]
> Кто будет Owner"ом у едита?
AOwner


 
!_SM_!   (2006-08-12 19:28) [34]

procedure TForm1.Button1Click(Sender: TObject);
var Ed: TEdit; Pn: TPanel;
begin
 Pn:=TPanel.Create(Form1);
 //Ed:=Tedit.Create(Pn);
 Ed.Parent:=Form1;
 Ed.Top:=220;
 Ed.Left:=50;
 Pn.Free;
 Ed.Text:="qwerqwer";
 //Ed.Parent:=Panel1; //Панель на форме
end;


Поясните почему при нажатии кнопки эта самая кнопка меняет координаты и Caption. Ведь я не обращаюсь к сендеру и почему нет AV, а если расскоментировать создание edit"a - то AV


 
Fay ©   (2006-08-12 19:40) [35]

2 !_SM_!   (12.08.06 19:28) [34]
> почему при нажатии кнопки эта самая кнопка меняет > координаты и Caption
Так получается, что в стеке валяется что-то совместимое с TControl (в нашем случае - Button1), и Ed получает это значение.
> а если расскоментировать создание edit"a - то AV
В этом случае ты явно (это нормально) присваиваешь значение Ed. Потом ты убиваешь Owner-а Ed (Pn.Free), который убивает Ed.


 
Юрий Зотов ©   (2006-08-12 20:17) [36]

> !_SM_!   (12.08.06 19:16) [32]

> Кто будет Owner"ом у едита?

После уничтожения панели - уже никто. Потому что уже не будет никакого едита. Он умрет вместе с панелью, которая БЫЛА его Owner"ом.


 
Fay ©   (2006-08-12 20:21) [37]

Мля, точно, от злости Free не заметил 8)


 
begin...end ©   (2006-08-12 20:35) [38]

> Пусик ©   (12.08.06 18:37) [4]

> Будут уничтожены любые объекты, владельцами которых является
> форма.

А также любые объекты, для которых форма является родителем.

При уничтожении экземпляра TComponent он уничтожает все компоненты, для которых он является owner"ом.

При уничтожении экземпляра TWinControl он вначале уничтожает все контролы, для которых он является parent"ом, а затем -- все оставшиеся компоненты, для которых он является owner"ом.


 
Anatoly Podgoretsky ©   (2006-08-12 20:37) [39]

Fay ©   (12.08.06 18:42) [9]
Речь шла все таки про TBitmap


 
Anatoly Podgoretsky ©   (2006-08-12 20:40) [40]

Что за дурдом?


 
DiamondShark ©   (2006-08-12 21:13) [41]

Кафка завистливо курит в сторонке...


 
Fay ©   (2006-08-12 22:18) [42]

2 Anatoly Podgoretsky ©   (12.08.06 20:37) [39]
Я в курсе. Уже ответили.



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

Форум: "Основная";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.048 c
15-1157647266
Колдун
2006-09-07 20:41
2006.09.24
Программное управление проигрывателями


2-1157627671
SergP.
2006-09-07 15:14
2006.09.24
exit в try...finally...end


2-1157649876
dexer
2006-09-07 21:24
2006.09.24
динамический TEdit и onkeyDown


2-1157688809
Балбес
2006-09-08 08:13
2006.09.24
Клавиатурные сокращения в дизайне


2-1157509511
031178
2006-09-06 06:25
2006.09.24
Работа с деревом





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