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

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

формы в dll [D7, XP]


Sw ©   (2008-10-27 13:11:00) 

из чужого приложения запускаю dll
создается форма с ComboBox и на CloseUp в зависимости от выбранного значения создается другая форма:
case Id of
    1: with TfmEnerg.Create(Application) do
       try ShowModal; finally Free; end;
   35:with TfmEnergsb.Create(Application) do
       try ShowModal; finally Free; end;
..................

допустим на  выбранной форме заполнили все реквизиты и нужно закрыть обе формы. Делаю так:
ModalResult:=mrOk; fmMain.Close;
выдает 'access violation'
Помогите, пожалуйста, разобраться


Сергей М.   (2008-10-27 13:56:00) [1]


> мне бы главную закрыть


По вызову Close Главная как раз и закроется, если текущим исполняемым методом является метод этой самой главной формы.


Sw   (2008-10-27 13:47:00) [2]


> Сергей М. ©   (27.10.08 13:37) [6]

if mr = mrOk then Close;  простите, только fmMain.Close;// мне бы главную закрыть


Сергей М.   (2008-10-27 13:37:00) [3]


> все равно выдает 'access violation'


Какая конкретно строчка моегокода вызывает AV ?


Palladin   (2008-10-27 13:35:00) [4]

хм... а зачем ты главную закрываешь из обработчика вызываемой? в ней самой (главной) то не судьба?


Sw   (2008-10-27 13:33:00) [5]


> Сергей М. ©   (27.10.08 13:14) [1]

все равно выдает 'access violation'


> Palladin ©   (27.10.08 13:16) [2]

выбранная форма закрывается, а вот главная нет (из которой ее вызвали) - нет (обе модальные)


Palladin   (2008-10-27 13:27:00) [6]

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


Palladin   (2008-10-27 13:16:00) [7]

присвоение значениня ModalResult'у автоматически закрывает форму, вызванную ShowModal


Сергей М.   (2008-10-27 13:14:00) [8]

var
 mr: Integer;
....
case Id of
   1: with TfmEnerg.Create(Application) do
      try
         mr := ShowModal;
      finally
         Free;
         if mr = mrOk then Close;
      end;
..................


Наверх

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