读书人

如何创建一个公用的单元

发布时间: 2012-02-19 19:43:39 作者: rapoo

怎么创建一个公用的单元。
程序中有些事件几个窗体都用到。我想写在一个公用的单元里面其它单元调用这个单元就可以了。怎么创建,我在工程中创建了一个单元但是把事件写上去就会报错。

[解决办法]
公用窗体先要被其他窗体引用,另外事件方法要是public,最后公用窗体的事件不是直接被调用的,而是赋给你窗体的事件,由你窗体来调用,具体可以看这里
http://www.cnblogs.com/sclsch/archive/2009/05/25/1487594.html
[解决办法]
公用单元不需要窗体,窗体的事件里写代码去调用公用单元里面的方法。
[解决办法]
接以下方式即可
{****************************************************************************************
全局使用到的函数/过程 被定义为类方法,在调用时不需要类的实例
例如
TJTH.ShowErrorMsg('保存成功','错误提示');
即可;
TJTH 的所有函数执行结果:
1):失败为False;
2):成功为True;
*****************************************************************************************}

unit FunctionUnit;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Db, ADODB, ComCtrls, inifiles, TypInfo;
const
sError = '错误提示...';
sHint = '提示...';

type
TJTH = class
{ 显示错误提示对话框}
class function ShowErrorMsg(msg, Caption: string): boolean;


{判断字符串是否数字}
class function IsNumeric(Data: string): boolean;
end;

implementation

//uses MainFrm;
//判断字符串是否数字

class function TJTH.IsNumeric(Data: string): boolean;
var i, code: integer;
begin
try
StrToFloat(data);
//result := true;
except
result := false;
end;
end;



{*************************显示错误提示对话框*****************************************}

class function TJTH.ShowErrorMsg(msg, Caption: string): boolean;

begin
MessageBox(GetActiveWindow, Pchar(msg), PChar(Caption), MB_ICONERROR +
MB_OK);
Result := True;
end;
{************************************************************************************}


initialization

finalization

end.


[解决办法]
1.file->new->unit 新建unit2
2.interface下面加放要引用的单元,比如什么uses Windows, Messages, SysUtils,之类的
3.接着,写上过程/函数的声明
4.implementation下面就写过程/函数的实现部分
5.其它窗体/单元在implementation下面引用unit2, 这样就可以使用unit2中的东东了

简单的就像这样子:

Delphi(Pascal) code
unit Unit2;interface uses Dialogs; procedure xx(yy:string);implementationprocedure xx(yy:string);begin  showmessage(yy);end;end.{窗体中:}...var  Form1: TForm1;implementation uses unit2;{这里引用/或者在interface下面的uses引用}{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin   xx('Hello !');end;end. 

读书人网 >.NET

热点推荐