Вниз
Скачать: CL | DM;

Создание TFrame из внешней DLL... Вообще, реально?   Найти похожие ветки 

 
Григорий Ситнин ©   (2002-01-10 15:28) [0]

Приветствую всех! Есть задача - у главного приложения есть TPanel, на который бы хотелось класть произвольного наследника от TFrame из разных DLL.
Никак не могу добиться работоспособности, а при динамической загрузке DLL еще и "Access Violation" получаю. Кто-нибудь такое уже творил? Подскажите, в каком направлении рыть, пожалуйста.
Юрий, очень на Вас надеюсь =)

--- (форма с TPanel) Form1.pas
unit uForm1;

interface

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

type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
frm: tframe;
end;

var
Form1: TForm1;

implementation
uses uFrame1;
{$R *.dfm}

function GetFrame(Owner: TControl): TFrame; external "extdll.dll" name "getframe";

procedure TForm1.Button1Click(Sender: TObject);
begin
frm := GetFrame(panel1);
panel1.InsertControl(frm);
end;

end.


--- (внешняя DLL) extdll.dpr
library extdll;

uses
Controls, Forms, Dialogs, uFrame1 in "uFrame1.pas" {Frame1: TFrame};

{$R *.res}
function GetFrame(Owner: TControl): TFrame;
begin
Result := TFrame1.Create(Owner);
end;

exports
GetFrame name "getframe";

begin
end.


--- Модуль uFrame1.pas - просто наследник TFrame, содержащий один TEdit. DPR к exe-шнику тоже банален и стандартен.


 
Romkin ©   (2002-01-10 15:34) [1]

Дык сделай несколько ActiveXForm, и создавай какую надо... Объемно, зато без проблем



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.005 c
14-90352
Brand
2001-11-30 23:35
2002.01.28
Кодирование информации


3-90187
AlexOb
2001-12-22 15:56
2002.01.28
Проблема с суммированием более 12 баз данных :(


4-90422
mms
2001-11-28 17:16
2002.01.28
Global Hook вопрос


14-90379
Pat
2001-11-24 18:05
2002.01.28
AutoRun для дисковода...


1-90316
apav
2002-01-11 15:17
2002.01.28
UTF-8




   Наверх