Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> закрытие модальной формы, закрывается родительская 
V
    Опции темы
demoded
Дата 20.11.2007, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 7.12.2006

Репутация: нет
Всего: нет



жутко туплю, немогу найти где грабли. В проекте постоянно использую следующую схему

MainForm вызывает Form2.MyShowForm
в MyShowForm делаю чего мне надо и показываю форму ShowModal
с показанной Form2 по нажатии на кнопку  вызывается Form3.MyShowForm
опятьже делаю свои дела и показываю 3-ю форму ShowModal

при закрытии Form3(любым способом) закрывается Form2 по непонятным причинам

сбивает с толку, то что такая схема раз 20 уже использована в этом проекте и никогда ничего подобного небыло. Формы работающие нормально и эти сравнивал - различий не нашел (может быть  и не заметил ибо истерика уже :( )
PM MAIL   Вверх
pseud
Дата 20.11.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



такие грабли (у меня) бывают например в таком случае
Код

frm := TForm99.Create(Self);
try
  frm.ShowModal;
finally
  Free;
end;

т.е. Free срабатывает для Self формы (необходимо frm.Free)
грабли эти из-за такой стандартной (для меня) конструкции:
Код

with TForm99.Create(Self) do
try
  ShowModal;
finally
  Free;
end;


хотя помню такое возникало и при корректном написании кода, когда из одной модальной ормы открывали другую и первая при закрытии второй присваивала себе ModalResult первой

пиши - будем искать грабли


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
demoded
Дата 20.11.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 7.12.2006

Репутация: нет
Всего: нет



обычно формы закрываю просто вызывая Close, либо если нужен ModalResult то выставляю его у кнопки

пробовал вместо Close писать Form3.Close - непомогло. Если форму закрываю через Close, то ModalResult = MrNone
PM MAIL   Вверх
pseud
Дата 20.11.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 10
Всего: 40



сделал проект как ты описал 
на сколько я понял у тебя такой механизм открытия форм 
(IMHO немного странноватый)

Form1;
Button1;
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  frm: TForm2;
begin
  frm := TForm2.Create(Self);
  frm.myshow;
  frm.Free;
end;

Form2;
Button1;
Код

procedure TForm2.myshow;
begin
  Self.ShowModal;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  frm: TForm3;
begin
  frm := TForm3.Create(Self);
  frm.myshow;
  frm.Free;
end;

Form3;
Код

procedure TForm3.myshow;
begin
  ShowModal;
end;


ничего не схлопывается
все работает ок



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
demoded
Дата 21.11.2007, 06:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 7.12.2006

Репутация: нет
Всего: нет



так и я возмущен происходящем до глубины души!
сейчас сделал 2 новых формы, все нормально, осталось перетащить содержимое.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1263 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.