Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Отображение формы из DLL в TScrollBox в Delphi без Show или ShowModal

Delphi , Компоненты и Классы , TScrollBox

В этой статье мы рассмотрим, как отобразить форму из DLL в TScrollBox в Delphi без использования Show или ShowModal. Для этого мы создадим DLL, содержащую форму, и экспортируем функцию для ее отображения в TScrollBox нашей основной формы.

Создание DLL

Создайте новый проект Delphi с именем Project1dll и добавьте в него форму DllForm.pas. В нашем примере мы будем использовать простую форму с кнопкой.

В файле Project1dll.dpr добавьте следующее содержимое:

library Project1dll;

uses
  SysUtils,
  Windows,
  Classes,
  DllForm in 'DllForm.pas' {frmDllForm};

procedure Create_Form(ph: HWND);
begin
  frmDllForm := TfrmDllForm.CreateParented(Ph);
  frmDllForm.Show;
end;

exports
  Create_Form;

begin
end.

Здесь мы экспортируем процедуру Create_Form, которая принимает в качестве параметра дескриптор окна (HWND) и создает экземпляр нашей формы frmDllForm с родительским окном, указанным в ph. Затем мы показываем форму.

Использование DLL в основном проекте

Создайте новый проект Delphi с именем Unit1 и добавьте на форму TScrollBox и TButton. В файле Unit1.dpr добавьте следующее содержимое:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ScrollBox: TScrollBox;
    procedure Button1Click(Sender: TObject);
  private
  end;

procedure Create_Form(ph: HWND) ; external 'Project1dll.dll' name 'Create_Form';

var
  Form1: TForm1;

implementation

{$R *.DFM}

function ScrollBoxDll(ph: HWND): Pointer; stdcall;
begin
  Create_Form(ph);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ScrollBoxDll(ScrollBox.Handle);
end;

end.

Здесь мы импортируем процедуру Create_Form из нашей DLL и объявляем функцию ScrollBoxDll, которая вызывает Create_Form и передает в качестве параметра дескриптор окна ScrollBox. В обработчике нажатия кнопки мы вызываем ScrollBoxDll, что приводит к отображению формы из DLL в TScrollBox.

Запуск проекта

Скомпилируйте оба проекта и запустите основной проект. При нажатии кнопки на форме появится форма из DLL в TScrollBox без использования Show или ShowModal.

Заключение

В этой статье мы рассмотрели, как отобразить форму из DLL в TScrollBox в Delphi без использования Show или ShowModal. Мы создали DLL, содержащую форму, и экспортировали функцию для ее отображения в TScrollBox нашей основной формы. Затем мы использовали эту функцию в основном проекте для отображения формы из DLL в TScrollBox при нажатии кнопки.

Этот подход может быть полезен, когда вам нужно отобразить несколько форм в TScrollBox, не передавая параметры между ними. Кроме того, этот подход может быть расширен для отображения форм из DLL в других контейнерах, таких как TPanel или TTabControl.

Создано по материалам из источника по ссылке.

В данной статье рассматривается способ отображения формы из DLL в TScrollBox в Delphi без использования команд Show или ShowModal. Для этого создается DLL, содержащая форму, и экспортируется функция для отображения формы в TScrollBox основной формы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TScrollBox ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 09:58:02/0.0060319900512695/0