各位高手:
我自已写了一个packages ,并包也安装好了,包名为:test,单元名为:testabc,有一个窗体为名为:testform.我新建了一个application 程序,怎样在程序里调用testform.show语句.请高手指教.
我自已写了一个packages ,并包也安装好了,包名为:test,单元名为:testabc,有一个窗体为名为:testform.我新建了一个application 程序,怎样在程序里调用testform.show语句.请高手指教.
解决方案 »
- delphi xe2 的datasnap 的TDataSet参数的问题
- 子线程中有一函数,可不可以在其父线程中的Execute中调用此函数呢?
- 求DELPHI用ADO连接MYSQL的 连接字符串!!!!!!!!!!!!!
- 都不好意思问!
- 从SQLSERVER查询物品库存一到276种速度就慢得不能忍受,不知是何原因???
- 皮皮散分系列之九<瘦马>
- 大侠请光顾!!非常棘手的打印QuickRep问题!!!
- delphi中如何使用事务???
- 一个圆盘,旋转,值
- 初次做管理信息系统做什么简单些呢?我没学过替别人做。大约给个思路吧,它是什么样?就是简单的数据库操作吧?来者有分(急)50分送上
- 为何总说canvas没有定义?
- 如果用户在DBGRID中选择了多条记录,请问如何得到它们?
下面是我写的实验的
unit Unit11;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus, Grids, ComCtrls;type
TtextClass = class of tff;
Tff = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
function CreateFormObject(AClassName, ACaption: string): Boolean;
{ Public declarations }
end;var
ff: Tff;
module:HMODULE;
implementation{$R *.DFM}
function GetForm(AClassName: string; ACaption: string = ''): TForm;
//根据FormName和Caption确定Form。
var
i: Integer;
FForm: TForm;
begin
Result := nil;
for i := 0 to Screen.FormCount - 1 do
begin
FForm := Screen.Forms[i];
if (CompareText(FForm.ClassName, AClassName) = 0)
and ((ACaption = '') or (CompareText(FForm.Caption, ACaption) = 0)) then
begin
Result := FForm;
Break;
end;
end;
end;
function Tff.CreateFormObject(AClassName, ACaption: string
): Boolean;
var
FFormClass: TtextClass;
FForm: TForm;
begin
Result := False;
FForm := GetForm(AClassName, ACaption);
if not Assigned(FForm) then
begin
FFormClass := TtextClass(GetClass(AClassName));
if FFormClass =nil then
begin
exit;
end; Screen.Cursor := crHourglass;
try
try
FForm := FFormClass.Create(application);
except
exit
end;
finally
Screen.Cursor := crDefault;
end;
end; FForm.Caption := ACaption;
if FForm.FormStyle = fsNormal then
FForm.Showmodal
else
begin
FForm.Show;
FForm.SetFocus;
end;
Result := True;
end;
procedure Tff.Button1Click(Sender: TObject);
var filepath:string;
begin
filepath:=ExtractFilepath(application.ExeName)+'package1.bpl';
module:=loadpackage(filepath);
CreateFormObject('tform1','form1');
end;procedure Tff.Button2Click(Sender: TObject);
begin
UnloadPackage(module);
end;end.
包中的
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}
function CsRegisterClass(AClass: TPersistentClass; ModuleInstance: LongWord): Boolean;const
BufferSize=512;begin
Result:=true;
RegisterClass(AClass);end;
procedure TForm1.Button1Click(Sender: TObject);
begin
self.close;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
end;initialization
CsRegisterClass(TForm1,HInstance);finalization
UnRegisterClass(TForm1);
end.