C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как немодально вызвать форму из dll
DVD
Отправлено: 21.10.2004, 02:37


Дежурный стрелочник

Группа: Участник
Сообщений: 33



Есть dll в проекте которой стандартно созданный Unit для dll
и подключен юнит с формой. Функция в dll -init(TComponent* Owner)

TForm2 *Form = new TForm2(Owner);
Form->ShowModal();
delete Form;

Т.е. когда вызываешь форму модально все ок, она появляется, потом ее закрываешь и она уничтожается.
Если же поставить Show() -она появлятся и исчезает сразу.
а если убрать delete Form, то прога вылетает с ошибкой.
Мне надо вызвать ее не модально, и что бы она уничтожалась при закрытии.
А еще лучше бы вызвать ее, как дочернюю mdi.
я передаю форму родительскую в этот init, род. форма модальная
в dll делаю ее свойства, как дочерняя mdi, а прога кричит, что нет ни одного mdi окна.



Отредактировано DVD — 21/10/2004, 11:43
Nick
Отправлено: 21.10.2004, 11:12


Машинист паровоза

Группа: Участник
Сообщений: 247



В Dll
что-бы уничтожалась при закрытии.

void __fastcall TForm2::FormClose(TObject *Sender,
TCloseAction &Action)
{
Action = caFree;

}

на счат mdi не знаю
не ндравится мне он
Sl@Sh
Отправлено: 21.10.2004, 13:55


Мастер участка

Группа: Участник
Сообщений: 383



Лично я делаю так :

Application->CreateForm(__classid(TForm1), &Form1);
Form1->Show();
Form1->Free();
Sl@Sh
Отправлено: 22.10.2004, 09:10


Мастер участка

Группа: Участник
Сообщений: 383



Поправка : нужно ещё подключить модуль формы : #include "Form1.h"

Вернуться в Вопросы программирования в C++Builder