Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

заNILить форму после Close;


Страницы:   1 2 3 4 5 6 7 8 9 10

ничтожная козявка ©   (2008-08-21 12:37:00) 

В некой dll есть функция, показывающая форму. Перед созданием формы, она проверяет ее на NIL:

 if not Assigned(Form1) then Form1 := TForm1.Create(AOwner);


также требуется, что бы после закрытия (Close) форма была уничтожена:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 ...
 Action := caFree;
 ...
end;


ВОПРОС: как сделать так, чтоб она была не только уничтожена, но и переменная Form1 приняла значение NIL. Т.к. поскольку эта переменная не NIL, при повторной попытке создать форму, ее конструктор
  if not Assigned(Form1) then Form1 := TForm1.Create(AOwner);
не вызывается, и в последствии сыпятся AV.


Юрий Зотов   (2008-08-24 10:27:00) [21]

> @!!ex ©   (24.08.08 10:24) [167]

А короед питается носокорами...


@!!ex   (2008-08-24 10:26:00) [22]

*Да ладно.


@!!ex   (2008-08-24 10:24:00) [23]

> [166] Юрий Зотов ©   (24.08.08 10:19)

На ладно? :))
Корова. Образовано от «кор» – рог.


Юрий Зотов   (2008-08-24 10:19:00) [24]

> @!!ex ©   (24.08.08 10:11) [165]

В общем-то, вряд ли удастся и найти правило, согласно которому слово "кОрова" надо писать через "О".

:о)


@!!ex   (2008-08-24 10:11:00) [25]

Кстати, а можно какой нить источник, в котором бы указывалось, что stack надо через "е" писать.
А то все говорят, что это обще принятое написание, а никаких ссылок не дают...


@!!ex   (2008-08-24 09:37:00) [26]

Мдя... А еще удивлялся, почему студенты в практических работах пишут Stek...
Понятно откуда ножки растут...


Leonid Troyanovsky   (2008-08-24 08:53:00) [27]


> @!!ex ©   (24.08.08 08:07) [162]

> Мне просто очень интересно откуда в этом слове взялась буква
> "е"??

Видимо, потому, что в русском языке уже существовало
слово стек [тэ] - короткая тонкая трость для верховой езды
пришедшее, наверное, из итальянского (stecca).
Когда пришло время электроники, люди не стали придумывать
новую транскрипцию для обозначения стека.

--
Regards, LVT.


@!!ex   (2008-08-24 08:07:00) [28]

> На основании принятого в современном русском языке написания.

Кем оно принято??
Мне просто очень интересно откуда в этом слове взялась буква "е"??


Германн   (2008-08-24 02:01:00) [29]


> стэка

Опять? Стек есть стек. Так  уж сложилось "написание" сего технического термина на русском. И не надо изобретать что-то иное.


Renegat   (2008-08-24 01:54:00) [30]

> [150] Anatoly Podgoretsky ©   (23.08.08 22:47)

Вот именно что относительно фрейма. Я так думаю что вряд ли кадр (фрейм, если угодно) стэка можно создать, не смещая ESP. Ведь даже если делать как-то наподобие
DWORD PTR [ESP-4*(k-1)], k є N
то первый же PUSH затрёт какую-нибудь переменнную.

А вот то что при отказе от глобальных переменных памяти тратится меньше - это неправда. Её требуется ровно столько же. и то при условии что количество размещаемых данных кратно 4 байтам. Скажем, есть у нас процедура. Она размещает в стэке 4х байт. Если бы она разместила их в .data - при её выполнении никакой разницы по затратам памяти бы не было.
А вот вообразим рекурсивную процедуру. Допустим, она, используя свои локальные переменные, вычисляет на основе переданных параметров некоторые значения, и несколько раз передаёт себе же управление, при этом в стэке, пока не выполнен RETN по адресу возврата, будут храниться все её локальные переменные - уже бесполезные. Здесь, имхо, гораздо выгоднее юзать глобальные (или, при возможности, регистры), которые могут быть заново использованы при каждом проходе функции.

Вот что я имел в виду под экономией.

В принципе, Дядя Толя тоже прав - в общем случае никакой экономии не получится.
Однако существует море частностей, которые кстати очень часто встречаются.

ЗЫ: Простите, если что, за нетрезвый вид =)


Anatoly Podgoretsky   (2008-08-24 01:47:00) [31]

> Германн  (24.08.2008 1:21:38)  [158]

Это про произношение, грузины просто под руку попали, как самое наглядное пособие.


Германн   (2008-08-24 01:21:00) [32]


> Anatoly Podgoretsky ©   (24.08.08 01:04) [157]

Это провокация?
:)

Вспоминаю давний монолог Хазанова про "воронье" яйцо :)
И ещё вспоминаю нашего (в МИФИ) преподавателя урматов. Грузина по национальности. Имя Отчество уже забыл, но фамилию помню. Бицадзе. Кстати у него есть по крайней мере один очень хороший учебник или сборник задач по урматам.
Так вот он несколько раз вспоминал, как посещал общагу по велению парткома.
"Ви думаете, что они там учатся? Нет. Они там все пияные валяются!".:)


Anatoly Podgoretsky   (2008-08-24 01:04:00) [33]

> Германн  (24.08.2008 0:59:36)  [156]

Ни, грузинская мудрость.


Германн   (2008-08-24 00:59:00) [34]


> Anatoly Podgoretsky ©   (24.08.08 00:45) [155]

Похоже на анекдот. Кстати неплохой. Сам придумал?


Anatoly Podgoretsky   (2008-08-24 00:45:00) [35]

> Германн  (24.08.2008 0:26:34)  [154]

Дети запомните правило

булька, вилька пишутся без мягкого знака,
а сол с мягким.


Германн   (2008-08-24 00:26:00) [36]


> @!!ex ©   (23.08.08 22:49) [151]
>
> > [149] Плохиш ©   (23.08.08 22:47)
>
> В данном случае пишу так, как есть транскрипция с английского(оригинального)
> языка.

А при чём тут транскрипция? Транскрипция описывает произношение, а не написание.
> На основании какого правила вы считаете, что правильно -
>  "е"?
На основании принятого в современном русском языке написания.


Anatoly Podgoretsky   (2008-08-23 23:09:00) [37]

Не интересует, переменные никогда не обнуляю после использования, поскольку никогда повторно не использую. Если нужен гарантированое знание есть ли форма, то восспользуюсь надежным решением, вместо ламерского. А профессиональное решение в использование Screen.Forms


Smile   (2008-08-23 22:50:00) [38]

А еще разумнее будет открыть ветку Мастеров (с авторством тех кого этот вопрос интересует) по этой проблеме, поскольку автор давно покинул "дискуссию".


@!!ex   (2008-08-23 22:49:00) [39]

> [149] Плохиш ©   (23.08.08 22:47)

В данном случае пишу так, как есть транскрипция с английского(оригинального) языка.
На основании какого правила вы считаете, что правильно - "е"?
Я всегда рад исправить свои ошибки. Но пока ошибки не вижу.


Плохиш   (2008-08-23 22:47:00) [40]


> Неужели Stack произносится как стек?

А, понял, поколение компютикус, "как слышится, так и пишется"... Всё ухожу, здесь мне делать нечего...


Страницы:   1 2 3 4 5 6 7 8 9 10

Наверх

Титульная страница Поиск, карта сайта Написать письмо