一个DLL重用窗体的问题(30分)

  • 主题发起人 主题发起人 cooldren
  • 开始时间 开始时间
C

cooldren

Unregistered / Unconfirmed
GUEST, unregistred user!
在主程序中调用DLL中一模态对话框,总是在任务栏中显示,而且不能总是在当前程序的前面。如何不让它在任务栏中显示?
代码如下:

DLL:

library cf;

uses
About in 'About.PAS' ;//关于对话框

{$R *.res}

exports
OnShowAbout;

begin
end.

unit About;

interface

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

function OnShowAbout():Boolean;export;
type
TAboutFrm = class(TForm)
lbl_version: TLabel;
PanelTop: TPanel;
BevelTop: TBevel;
BevelButton: TBevel;
BtnOK: TButton;
ImgLogo: TImage;
lbl_Email: TLabel;
private

public

end;


var
AboutFrm: TAboutFrm;

implementation

function OnShowAbout():Boolean;
var
AboutFrm:TAboutFrm;
begin
Result:=False;
AboutFrm:=TAboutFrm.Create(Application);
try
with AboutFrm do
if ShowModal=mrOK then
Result:=True;
finally
AboutFrm.Free;
end;
end;

{$R *.dfm}

end.

请问这是为什么?
谢谢!
 
使其不在任务栏显示,要用SetWindowLong API。
不能保持在主窗体的前端,是因为你在DLL中建立窗体的时候没有以主程序的Application创建。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
854
import
I
后退
顶部