Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2016, 00:54   #1
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
Вопрос Как загрузить форму из dll и разместить её внутри главной формы на компоненте Panel?

Как загрузить форму из dll и разместить её внутри компонента TPanel главной формы?
Image 11.jpg
Листинг главной формы:
Код HTML:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Vcl.ExtCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Panel1: TPanel;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
procedure ShowAbout(AOwner:TComponent); stdcall; external 'Project2.dll';
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowAbout(Application);
end;
 
end.
Листинг dll:
Код HTML:
library Project2;
 
uses
  SysUtils,
  Classes,
  Forms,
  Unit2 in 'Unit2.pas' {Form2};
 
{$R *.res}
 
procedure ShowAbout(AOwner:TComponent); stdcall;
var
  Form: TForm2;
begin
  Form:=TForm2.Create(AOwner);
  Form.ShowModal;
  Form.Free;
end;
 
exports ShowAbout;
 
begin
end.
Файлы проекта с готовой dll:
dll_Form.zip
tim21701 вне форума Ответить с цитированием
Старый 10.03.2016, 01:23   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Дельфийская форма в dll это извращение! Со всеми вытекающими последствиями.
Мазохист или любитель геморроя?
northener на форуме Ответить с цитированием
Старый 10.03.2016, 02:01   #3
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Дельфийская форма в dll это извращение! Со всеми вытекающими последствиями.
Мазохист или любитель геморроя?
Просто надо это сделать и все. А уж о целесообразности того или иного решения - это отдельная ветка под названием "курилка". Если вы в силах помочь - поделитесь решением (помимо мнения), буду признателен))
tim21701 вне форума Ответить с цитированием
Старый 10.03.2016, 02:43   #4
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Код:
Form2:=TForm2.Create(AOwner);
Form2.Parent:=AOwner;
Form2.Top:=0;
Form2.Left:=0;
Form2.Show;//Modal;
//Form2.Free;
ShowModal не получится...
kropotkina-alice вне форума Ответить с цитированием
Старый 10.03.2016, 09:40   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Просто надо это сделать и все.
просто это сделать не получится.
http://programmersforum.ru/showthrea...hlight=dll+bpl
http://programmersforum.ru/showthrea...hlight=dll+bpl
http://programmersforum.ru/showthrea...hlight=dll+bpl
http://programmersforum.ru/showthrea...hlight=dll+bpl
http://programmersforum.ru/showthrea...hlight=dll+bpl
http://programmersforum.ru/showthrea...hlight=dll+bpl
http://programmersforum.ru/showthrea...hlight=dll+bpl
http://programmersforum.ru/showthrea...hlight=dll+bpl

есть еще один путь, но опять же не такой простой.
использовать инструменты Microsoft (ActivX OLE COM технологии).
сделать форму в DLL ActivX компонентом. и соответственно DLL будет ActivX (и OLE и COM) сервером.
а "родительская " форма будет выступать его клиентом.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 10.03.2016 в 09:54.
evg_m вне форума Ответить с цитированием
Старый 10.03.2016, 11:42   #6
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
Радость

Цитата:
Сообщение от evg_m Посмотреть сообщение
просто это сделать не получится...
Просто надо взять и сделать.

Готовый пример (файлы проекта) вместе с откомпилированной dll и exe в архиве
Всем спасибо. Вопрос закрыт.

Project1

Последний раз редактировалось tim21701; 10.03.2016 в 11:45.
tim21701 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив в dll - как разместить массив в dll и как вызвать элемент этого массива по индексу? Кинельски Помощь студентам 0 23.05.2010 20:52
Поиск из dll по компоненту RichEdit из главной формы mauar Общие вопросы Delphi 3 24.05.2009 12:26
Обращение из формы в dll к элементу главной формы (delphi) a_n_n_a Помощь студентам 3 10.05.2009 04:00
Как сделать, чтобы форму можно было перемещать только внутри главной формы SeregaKo Общие вопросы Delphi 7 26.03.2009 12:48
Как загрузить форму с DLL SeRhy Общие вопросы Delphi 7 18.11.2008 21:05