![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закрытие модального окна
LiberlX © (2006-10-31 16:26:00)Здравствуйте всем!
Устал бороться с модальным окном. При его закрытии уничтожается Owner. И, как следствие, Access violation.
Как мне при закрытии модального окна не уничтожать Owner'a?
RASkov (2006-11-01 03:38:00) [21]> [23] Ketmar © (01.11.06 03:23)
Не вижу глубокого смысла в регистрации....
> а вдруг я на тебя игнор захочу поставить
Ну значит не судьба:) Дело твое....
Хотя может и зарегюсь...
> Но и ты, как и "автор" ветки
До сих пор не верит.... ну да ладно, доказывать не буду. Думай как знаешь.
> стремишься "уничтожить объект внутри его собственного обработчика"!
> Есть такая фишка, что при закрытии модальногоокна закрывается
> родительское окно, из которого оно [модальное] было вызвано
Автор так захотел, его право. Пусть он выводы делает.
> [21] Германн © (01.11.06 02:58)
Извеняюсь, конечно, но это [21] мне не понравилось.
Вот за дурной код(который я приводил автору вопроса) чего либо услышать, я был готов.
Тем более еще и подписал, что код дурной, но ...
А то что в [21]....в часности последняя строчка... Вообщем - сам ты Саид.
Сказал не в обиду, хотя меня задело:) Сорри. Надеюсь автор свой вариант покажет.
ЗЫ Чёт у меня сегодня настроение плохое. (Было уже)
Германн (2006-11-01 03:36:00) [22]
> Ketmar © (01.11.06 03:23) [23]
Dark, проспись. А то уж очень много очепяток! Мы, конечно, с АП "одной крови", но не до "такой же степени"! :-)
Германн (2006-11-01 03:28:00) [23]
> Еще раз говорю - ветку заводил не я.
Но и ты, как и "автор" ветки стремишься "уничтожить объект внутри его собственного обработчика"!
Ketmar (2006-11-01 03:23:00) [24]>[22] RASkov 1-Nov-2006, 03:06
>Еще раз говорю - ветку заводил не я.
зарегистрируся, проще будет. %-) а вдруг я на тебя игнор захочу поставить? а ты неригистрированый... %-)
RASkov (2006-11-01 03:06:00) [25]Теперь понятно:)) Нет автор вопроса не я.
А вот чета и не подумал, что может произойти такая ассоциация моего поста с предыдущим:)
> Понятно, что код не весь, и довольно таки дурной, но думаю
>
> > то, что подчеркнуто - это и есть ответ на вопрос.
Я вообщето имел ввиду, ответ на вопрос автора. Т.е. подчеркнутое - это ему другой овнер.
Вот поправлю нимного:
FormDlg: TFormDlg;
FormMain: TFormMain;
FormChild: TFormChild;
procedure TFormMain.Button1Click();
begin
FormChild:=TFormChild.Create(Self);
FormChild.Show;
end;
.....
procedure TFormChild.ButtonClick();
begin
FormDlg:=TFormDlg.Create( FormMain);
FormDlg.ShowModal;
end;
....
procedure TFormDlg.Close();
begin
FormChild.Close;
end;
....
procedure TFormChild.FormClose();
begin
FormChild.Free; FormChild:=nil;
end;
Еще раз говорю - ветку заводил не я.
Германн (2006-11-01 02:58:00) [26]
> RASkov (01.11.06 02:43) [20]
Как прикажешь понимать тебя, Саид?
После
> MsGuns © (31.10.06 23:52) [16]
>
> Ты код вообще-то можешь привести или дальше будем "граты
> у котыка та билочку" ?
последовало:
> RASkov (01.11.06 02:17) [17]
>
> FormDlg: TFormDlg;
> FormMain: TFormMain;
> FormChild: TFormChild;
>
> procedure TFormChild.ButtonClick();
> begin
> FormDlg:=TFormDlg.Create(FormMain);
> FormDlg.ShowModal;
> end;
>
> procedure TFormDlg.Close();
> begin
> FormChild.Free; FormChild:=nil;
> end;
>
> Понятно, что код не весь, и довольно таки дурной, но думаю
> то, что подчеркнуто - это и есть ответ на вопрос.
>
Ответ на какой вопрос?
А потом ещё и RASkov (01.11.06 02:22) [18]
Ну да, забыл вот еще чё:
procedure TFormMain.Button1Click();
begin
FormChild:=TFormChild.Create(Self);
FormChild.Show;
end;
Имхо, стОит мне найти недавний ответ АП о том, что "лучше не прятаться, иначе "дураком помрёшь" :-) Буду его приводить в ответах. :-)
RASkov (2006-11-01 02:43:00) [27]> 2 RASkov
> А зачем было изобретать LiberalX?
???? Это Вы подумали, что это мой вопрос?
> Опять тянет на "уничтожение объекта" внутри обработчика
> его, т.е. объекта события.
Это не меня тянет, а автора:))
> Понятно, что код не весь, и довольно таки дурной
Германн (2006-11-01 02:30:00) [28]2 RASkov
А зачем было изобретать LiberalX?
Всё остальное очень криво, имхо. Опять тянет на "уничтожение объекта" внутри обработчика его, т.е. объектасобытия.
Решения есть, но лучше бы тебе подробнее объяснить "глобальную" задачу. Иначе получишь либо "метлу" либо ворох "неответов".
RASkov (2006-11-01 02:22:00) [29]Ну да, забыл вот еще чё:
procedure TFormMain.Button1Click();
begin
FormChild:=TFormChild.Create(Self);
FormChild.Show;
end;
RASkov (2006-11-01 02:17:00) [30]
FormDlg: TFormDlg;
FormMain: TFormMain;
FormChild: TFormChild;
procedure TFormChild.ButtonClick();
begin
FormDlg:=TFormDlg.Create( FormMain);
FormDlg.ShowModal;
end;
procedure TFormDlg.Close();
begin
FormChild.Free; FormChild:=nil;
end;
Понятно, что код не весь, и довольно таки дурной, но думаю то, что подчеркнуто - это и есть ответ на вопрос.
MsGuns (2006-10-31 23:52:00) [31]Ты код вообще-то можешь привести или дальше будем "граты у котыка та билочку" ?
LiberalX (2006-10-31 21:04:00) [32]Хорошо вообще себя чувствуете?
Desdechado (2006-10-31 20:50:00) [33]чувак, грызи гранит, а?
http://www.ln.ua/~openxs/articles/smart-questions-ru.html
Anatoly Podgoretsky (2006-10-31 20:36:00) [34]> LiberalX (31.10.2006 20:33:12) [12]
Нет это мы тебя слушаем и пока безрезультатно.
LiberalX (2006-10-31 20:33:00) [35]
> И сразу слинял.
Внимательно слушаю.
Anatoly Podgoretsky (2006-10-31 20:32:00) [36]> LiberalX (31.10.2006 20:29:10) [10]
> Польщен перемещением моего вопроса.
И сразу слинял.
LiberalX (2006-10-31 20:29:00) [37]
> Э да у тебя ошибка в программе.
Да ну...
Польщен перемещением моего вопроса. Спасибо всем участникам за помощь :)
Anatoly Podgoretsky (2006-10-31 20:21:00) [38]> LiberalX (31.10.2006 20:17:08) [8]
Э да у тебя ошибка в программе.
LiberalX (2006-10-31 20:17:00) [39]Есть такая фишка, что при закрытии модального окна закрывается родительское окно, из которого оно [модальное] было вызвано. Я уже встречался с этим как-то давно, и поборол, и не могу вспомить как. Память дырявая. :)
Ну дак вот, TForm.Create(AOwner: TComponent). Этот самый овнер, в моем, конкретном случае, кнопка по нажатию на которую выполняется скрипт (встроенный язык скриптовый). Из скрипта вызывается модальное окно с вопросом (не showmessage), после которого происходит дальнейшее выполнение скрипта. Когда я закрываю модальную форму, допустим по mrOk, этот самый овнер уже null. У меня продолжается выполнение скрипта, объекта которого уже нет и сразу отлуп естественно...
Anatoly Podgoretsky (2006-10-31 20:03:00) [40]> Leonid Troyanovsky (31.10.2006 19:11:06) [6]
Вообще то нужен, по крайней мере в Д2006, вот только зачем его уничтожать,
ничего разумного в голову не приходит.