Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Не модальные формы в Dll


Автор: Sanchezzz 21.4.2007, 23:25
как вызвать не модальную форму из DLL? 
Кинти примерчик.

Автор: Yanis 21.4.2007, 23:40
Так же как и модальную.

Автор: Sanchezzz 21.4.2007, 23:59
яб хотел увидеть ваш код...

Автор: MetalFan 22.4.2007, 11:22
FormaIzDll.Show

Автор: Guedda 22.4.2007, 11:54
Создаёшь длл, в ней создаёшь новую форму. В теле длл пишешь:
Код

procedure ShowFormAA;
begin
  Form1 := TForm1.Create(Self);
  Form1.Show;
end;

exports
  ShowFormAA;

Потом присоединяешь длл к главному проекту, типа:
Код

procedure ShowFormAA; external 'mydll.dll';

и вызываешь там, где она нужна...
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowFormAA;
end;

Автор: MetalFan 22.4.2007, 12:40
а вообще формы в длл не рулят)

Автор: Sanchezzz 23.4.2007, 19:28
как при офторном вызове чтоб он не создовал второе окно. мне нужно чтоб я имел доступ и к первой форме в програме и ко второй форме в длл.

Код

procedure ShowFormAA;
begin
  Form1 := TForm1.Create(Self);
  Form1.Show;
end;

 self он не хочет компелировать лутше использовать:

Код

procedure ShowFormAA(AtHandle:Handle);
begin
Application.Handle := AеHandle;
Form1 := TForm1.Create(Application);
Form1.Show;
end;



Автор: Yanis 23.4.2007, 19:40
Цитата(Sanchezzz @  23.4.2007,  20:28 Найти цитируемый пост)
Form1 := TForm1.Create(Self);

В данном случае Self совершенно неуместно. 
По этой же ошибке совершенно ясно, что данная тема, на существующем уровне понимания, не подъёмна для тебя.

Добавлено через 4 минуты и 3 секунды
Цитата(Sanchezzz @  23.4.2007,  20:28 Найти цитируемый пост)
как при офторном вызове чтоб он не создовал второе окно. мне нужно чтоб я имел доступ и к первой форме в програме и ко второй форме в длл.

Просто не надо давать возможность повторного вызова, если форма отображена.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)