![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OnCreate, OnDestroy
!_SM_! © (2006-08-12 18:21:00)Будет ли уничтожен BitMap
var BitMap: TBitMap; //глобальная переменная
procedure TForm1Create(Sender: TObject);
begin
BitMap:=TBitMap.Create;
end;
автоматически на Destroy формы?
Fay (2006-08-12 22:18:00) [1]2 Anatoly Podgoretsky © (12.08.06 20:37) [39]
Я в курсе. Уже ответили.
DiamondShark (2006-08-12 21:13:00) [2]Кафка завистливо курит в сторонке...
Anatoly Podgoretsky (2006-08-12 20:40:00) [3]Что за дурдом?
Anatoly Podgoretsky (2006-08-12 20:37:00) [4]Fay © (12.08.06 18:42) [9]
Речь шла все таки про TBitmap
begin...end (2006-08-12 20:35:00) [5]> Пусик © (12.08.06 18:37) [4]
> Будут уничтожены любые объекты, владельцами которых является
> форма.
А также любые объекты, для которых форма является родителем.
При уничтожении экземпляра TComponent он уничтожает все компоненты, для которых он является owner'ом.
При уничтожении экземпляра TWinControl он вначале уничтожает все контролы, для которых он является parent'ом, а затем -- все оставшиеся компоненты, для которых он является owner'ом.
Fay (2006-08-12 20:21:00) [6]Мля, точно, от злости Free не заметил 8)
Юрий Зотов (2006-08-12 20:17:00) [7]> !_SM_! (12.08.06 19:16) [32]
> Кто будет Owner'ом у едита?
После уничтожения панели - уже никто. Потому что уже не будет никакого едита. Он умрет вместе с панелью, которая БЫЛА его Owner'ом.
Fay (2006-08-12 19:40:00) [8]2 !_SM_! (12.08.06 19:28) [34]
> почему при нажатии кнопки эта самая кнопка меняет > координаты и Caption
Так получается, что в стеке валяется что-то совместимое с TControl (в нашем случае - Button1), и Ed получает это значение.
> а если расскоментировать создание edit'a - то AV
В этом случае ты явно (это нормально) присваиваешь значение Ed. Потом ты убиваешь Owner-а Ed (Pn.Free), который убивает Ed.
!_SM_! (2006-08-12 19:28:00) [9]
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:20:00) [10]2 !_SM_! (12.08.06 19:16) [32]
> Кто будет Owner'ом у едита?
AOwner
!_SM_! (2006-08-12 19:16:00) [11]> [31] Fay © (12.08.06 19:11)
Edit:=Tedit.Create( Panel1);
Edit.Parent:=Form1;
Panel1.Free;
Кто будет Owner'ом у едита?
Fay (2006-08-12 19:11:00) [12]2 !_SM_! (12.08.06 19:09) [30]
> Кто будет Owner'ом у едита?
Form1.
Ты сам его назначил в Tedit.Create(Form1)
!_SM_! (2006-08-12 19:09:00) [13]> [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:06:00) [14]2 !_SM_! (12.08.06 19:00) [24]
> И по моему владелец не уничтожает своих... как их там ... кем владеет.
А что он с ними делает? Дань собирает?
Fay (2006-08-12 19:04:00) [15]2 !_SM_! (12.08.06 19:03) [27]
Зайди на lingvo.ru да переведи "owner" и "parent"
!_SM_! (2006-08-12 19:03:00) [16]> [25] Юрий Зотов © (12.08.06 19:02)
Что именно наоборот?
Юрий Зотов (2006-08-12 19:02:00) [17]> !_SM_! (12.08.06 18:56) [22]
Все ровно наоборот.
!_SM_! (2006-08-12 19:02:00) [18]
> [24] !_SM_! (12.08.06 19:00)
Не совсем корректная поправка к
> [4] Пусик © (12.08.06 18:37)
!_SM_! (2006-08-12 19:00:00) [19]> [22] !_SM_! (12.08.06 18:56)
И по моему владелец не уничтожает своих... как их там ... кем владеет.
!_SM_! (2006-08-12 18:57:00) [20]> [21] Fay © (12.08.06 18:56)
Ладно, не грузи.... :))