Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
ВнизОтличие self и application Найти похожие ветки
← →
RomanH © (2007-09-03 10:53) [0]Отличие
procedure TGrantForm.BitBtn3Click(Sender: TObject);
var TESF:TEditStatusForm;
begin
TESF:=TEditStatusForm.Create(self);
TESF.ShowModal;
TESF.Free;
end;
отprocedure TGrantForm.BitBtn3Click(Sender: TObject);
var TESF:TEditStatusForm;
begin
TESF:=TEditStatusForm.Create(Application);
TESF.ShowModal;
TESF.Free;
end;
Помогите понять в чем отличие.
← →
Reindeer Moss Eater © (2007-09-03 10:55) [1]В типе отличие. Там TGrantForm, а там TApplication
← →
Сергей М. © (2007-09-03 10:56) [2]В данном случае никакого отличия нет.
Отличия будут заметны только при отсутствии строки TESF.Free
← →
evvcom © (2007-09-03 10:58) [3]в 1 случае за уничтожение объекта TEditStatusForm ответственна TGrantForm, а во втором Application. Но в коде ты сам убиваешь эту TEditStatusForm, поэтому, если в методах ShowModal и Free, не возникнет исключительной ситуации, то оба варианта идентичны, точно также, если туда передать вообще nil. А разными последствия будут только в случае возникновения исключения.
← →
RomanH © (2007-09-03 11:13) [4]Мастера, спасибо. Но правильно ли я Вас понял?
Подведу итоги, т.е. если я использую 1 случай, то для того чтобы освободить память мне обязательно надо использовать деструктор Free, а во втором случае не надо так что ли, объект TEditStatusForm сам освободиться из памяти.
← →
Сергей М. © (2007-09-03 11:16) [5]
> объект TEditStatusForm сам освободиться из памяти
Правильное решение напрямую зависит от того, в какой момент времени и при каких обстоятельствах ты желаешь уничтожения созданного тобой объекта класса TEditStatusForm..
← →
Leonid Troyanovsky © (2007-09-03 11:18) [6]
> RomanH © (03.09.07 11:13) [4]
> Подведу итоги, т.е. если я использую 1 случай,
Высеки у себя на стене правильный способ:
with TEditStatusForm.Create(nil) do
try
..
.. := ShowModal;
..
finally
Free;
end;
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2007-09-03 12:09) [7]Насчет Create(nil) - не всегда это правильно, в последнее время почти всегда неправильно.
Тоже будет касаться TApplication.
А вот Self наиболее подходяще, поскольку свойство Owner давно отвечает и за другие вещи, а не зная что внутри формы и как устроена там обработка вообще сложно говорить о чем либо. Может у него там Owner.Button1
← →
evvcom © (2007-09-03 12:34) [8]
> поскольку свойство Owner давно отвечает и за другие вещи
Все правильно, только автору, имхо, этим пока не стоит голову забивать. Пусть поймет для начала тот смысл этого Owner, который закладывался изначально и который задокументирован в официальной справке от Borland
← →
Anatoly Podgoretsky © (2007-09-03 12:58) [9]А потом будет вопрос, почему форма ведет иначе, чем у меня указано в свойствах.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c