![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать создана ли форма? [D5]
MCFire © (2002-11-02 16:17:00)?
Calm (2002-11-02 17:18:00) [1]Да я же не против...
Anatoly Podgoretsky (2002-11-02 17:14:00) [2]Malder © (02.11.02 17:03)
И обратно, если равен nil то это не значит, что форма существует, а вот Screen это одназначно, только существующие формы, что бы не творили программисты со своими глобальными переменными.
Calm (2002-11-02 17:08:00) [3]Конечно, не значит!
Однако мне никогда в жизни не придет в голову писать вещи типа:
var
Button1:TButon;
Form1:TForm;
begin
...
Form1:=pointer(Button1);
...
end;
Malder (2002-11-02 17:03:00) [4]Calm, если указатель на объект типа TForm не равен nil, это не значит, что он указывает на объект типа TForm
Anatoly Podgoretsky (2002-11-02 16:52:00) [5]А я надеялся, что ты хелп посмотрищь :-(
Screen это переменная типа TScreen, посмотри хоть по ней хелп, кратко там содержится список всех созданных форм приложения.
MCFire (2002-11-02 16:48:00) [6]Calm Спасибо попробую
Calm (2002-11-02 16:45:00) [7]
varНо!Когда форма уничтожается, нужно делать не Form1.Free,
Form1:TForm1;
begin
if Form1<>nil
then begin
{Форма создана}
end
else begin
{соответственно, не создана}
end;
end;
а FreeAndNil(Form1), т.к. при вызове метода Free память, выделенная на объект, освобождается, но сам указатель на объект остается (Form1 - это и есть указатель на объект).
А вот FreeAndNil() заниливает этот указатель.
MCFire (2002-11-02 16:36:00) [8]Anatoly Podgoretsky а по конкретней? Screen єто что?
Anatoly Podgoretsky (2002-11-02 16:33:00) [9]Screen