用DELPHI创建DLL文件,封装窗体的实现方法实例
虽是原创,但是是参考过别人的作品,然后自己重新写的,目的是要给初学者一个更容易明白。
用DELPHI创建DLL文件,封装窗体的实现方法实例:
即一个程序不再是单一的一个EXE文件了,而是由一个EXE文件加N个DLL文件组成,这样做的原因是方便以后的维护与更新,也是跨平台开发的重要一步。
1, 打开DELPHI,新建一个Dll Wizard
2, 在新建的Dll里新建一个Form
3, 在新建的Form里uses stdctrls
4, 在var下面写:
Procedure synapp(App:THandle);stdcall;
Procedure showform;stdcall;
5, 然后在implementation 下面uses math
6, 在{$R *.dfm}下面写
Procedure synapp(App:THandle);stdcall;
Begin
Application.Handle:=app;
End;
Procedure showform;stdcall;
Begin
Form1:=Tform1.create(application);
Form1.show;
End;
7, 在dll的Library文件里的{$R *.res}下面写:
exports
Sysapp,show;
上面到此为止完成了DLL封装窗体的创建
下面是调用了
1, 在要调用DLL文件的程序的var下写:
Procedure synapp(App:THandle);stdcall;external ‘my.dll’ ;//----你的DLL文件名
Procedure showform;stdcall;external‘my.dll’;//----你的DLL文件名
注:把你写好的DLL放在本程序的同一目录下,和上面一样,要uses math;
2, 在你的程序的Button的On Click事件下写:
Synapp(applicatiln.Handle);
Showform;
相关文档:
Delphi 中 FindWindow 和 FindWindowEx 的语法和用法
FindWindow(
lpClassName, {窗口的类名}
lpWindowName: PChar {窗口的标题}
): HWND; {返回窗口的句柄; 失败返回 0}
//FindWin ......
最近面试了一家企业,下面有一道从来没有想过的问题,当时有思路,不过写不出来.回来后,调试了一下,发现还是有难度的,写上来看大家是否还有更优化的写法,欢迎讨论:
下面实现将字符串"10ad200d3" 中的数字合计,10+200+3=213
var s1:string;
var i:integer;
var n1:integer;
var tem1: string;
var tem2:integer;
......
我在文章《Delphi图像处理 -- 图像卷积及高斯模糊》中,介绍了利用通用的图像卷积过程对图像进行高斯模糊处理,其处理效果还不错,处理小型图像时感觉也还行,但是处理较大图像时的速度还是嫌慢,在我的P4 2.8G、1G内存的机器上对千万像素图像进行Q=3,R=5的高斯模糊处理,不包括图像装载和前期数 ......
unit MyADO;
interface
uses
SysUtils, Classes,ADODB,DB,Variants,StdCtrls,Dialogs;
type
TMyADO = class(TComponent)
private
Connection: TADOConnection;
Query: TADOQuery;
Table: TADOTable;
FConnectio ......
过程无返回值,函数有返回值。
procedure MyProc(m,n : Integer; o : String; p : Single = 2.5; q : String = 'Delphi');
如上例所示,过程声明和定义中,多个参数是用分号隔开的,但在调用时是用逗号隔开的 。eg:
......