![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пример использования формы(на WinAPI) в dll.
Antonn © (2005-07-20 12:58:00)Подкиньте, пожалуйста, примерчик или ссылку, как такое реализовать. Нашел примеры по использованию формы из dll, но там все на vcl, а мне надо на winapi форму и прогресс_бар. Не могу понять, как вообще это делать.
И, если можно, как на WinApi создать контрол с закладками(типа TTabbedNotebook)?
Antonn (2005-07-21 08:48:00) [1]GrayFace © (20.07.05 23:13) [3]
я хотел на Апи для маленького размера, потом глянул сколько геммора и но понятного, и сдался vcl.
Причем что понравилось в методе ниже, форму видно(Shift+F12) и можно редактировать.
//--------------- dpr dll -------------
library FID;
uses
Classes,
Unit1 in 'Unit1.pas' {Form1};
exports
Create_Form,
Destroy_Form;
end.
//------------------------------------
//--------------- pas формы -------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
procedure Create_Form(AppHandle: THandle); stdcall;
procedure Destroy_Form; stdcall;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure Create_Form(AppHandle: THandle);
begin
Application.Handle := AppHandle;
Form1 := TForm1.Create(Application);
Form1.ShowModal;
end;
procedure Destroy_Form;
begin
Form1.Free;
end;
end.
//------------------------------------
//-------------- в проекте подключаешь (статика) -----------------
..
procedure Create_Form(AppHandle: THandle); stdcall; external 'FID.dll';
procedure Destroy_Form; stdcall; external 'FID.dll';
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
try
Create_Form(Application.Handle);
finnaly
Destroy_Form;
end;
end;
GrayFace (2005-07-20 23:13:00) [2]Дай мне, пожалуйста, пример с VCL.
На WinApi, по сути, нет разницы - в dll или нет. Для уменьшения размера кода можешь поискать заменители VCL, можно использовать KOL (не знаю, что это, но штука известная. Наверное, тоже заменитель).
Anatoly Podgoretsky (2005-07-20 18:46:00) [3]WinAPI не в курсе насчет форм
Eraser (2005-07-20 13:37:00) [4]Antonn © (20.07.05 12:58)
Всё это реализуется через API ф-ии CreateWindow/CreateWindowEx.