永发信息网

delphi7制作带窗体的DLL

答案:2  悬赏:80  手机版
解决时间 2021-02-13 22:45
  • 提问者网友:鼻尖触碰
  • 2021-02-13 12:29
本人刚学不久,怎么写带窗体的DLL,启动D7默认是创建form1,新建DLL时form就退出了,应该怎么做?
动态调用DLL内的函数,过程,类,应该怎么做?函数等等放在DLL的哪儿?form要怎么声明,在哪儿声明。
望高手帮忙,谢谢!最好能写个能通过的代码+注释。谢谢

整篇复制的省省吧
最佳答案
  • 五星知识达人网友:迟山
  • 2021-02-13 12:47
在DLL 中,除了放置标准的函数和过程以外,也可以放置已经做好的的delphi窗体,也可以把做好的窗体供其它程序使用,方法是:

1)首先按普通方法制作窗体,不过在interface区域,对接口函数做如下声明

function Createform(capt:string):string;stdcall;

2)在implementation下加入接口函数

function Createform(capt:string):string;stdcall;

var Form1: TForm1;
begin
form1:=Tform1.Create(application);
form1.show;
form1.caption:=capt;

end;

3)制作DLL 动态连接库,但要声明:
uses
unit1 in ’unit1.pas’;
exports

{写入接口标示符}

Createform name ’Myform’;

4)调用窗体的程序按普通方法制作,但是 在implementation下首先声明要调用的DLL函数 ,

const :
gdi32=’myFormdll.dll’;
function Createform(capt:string):string;stdcall;external gdi32 name ’Myform’;

procedure TForm3.Button1Click(Sender: TObject);
var n,m:string;
begin
m:=’我的窗体’;
Createform(m);var n,m:string;
end;
全部回答
  • 1楼网友:梦中风几里
  • 2021-02-13 12:53
form1.printscale:=poprinttofit; form1.print; 是可以打印出来的啊, 你这样试下: 在use里加入clipbrd procedure tform1.button1click(sender: tobject); var formimage: tbitmap; myimage:timage; begin formimage := getformimage; myimage:= timage.create(nil); try clipboard.assign(formimage); myimage.picture.assign(clipboard); myimage.picture.savetofile('d:/xxx.bmp'); finally begin myimage.free; formimage.free; end; end; end; 看看产生的xxx.bmp就知道了,如果xxx.bmp没问题建议看看是不是打印机的问题 窗体名直接 .print只能打印能看见的部分,如果窗体有滚动条,直接看不见那部分是打不出来的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯