Delphi中const放在什么地方,最好有例子。
2个回答
展开全部
没有绝对的,如果你这个单元中的常量要在其它的单元还访问,要放在interface块中。例电子书库源代码中的SrmConst单元就是一个例子,该单元定义了全局常量,并且这些常量在其它单元中要访问
---------------------------------- SrmConst.pas --------------------------------------------
unit SrmConst;
interface
const
//注册表相关常量,MainFun单元使用
csSrmFileType='\.srm';
csSrmCommand='\srm\shell\open\command';
{$ifndef ENGLISH}
csSrmFileDescribe='电子书库文档';
{$else}
csSrmFileDescribe='Srm Document';
{$endif}
{$ifndef ENGLISH}
csAppName='电子书库';
{$else}
csAppName='Stack Room';
{$endif}
//对话框相关常量
csSrmExt='srm';
csTreExt='tre';
csIdxExt='idx';
csDatExt='dat';
csTmpExt='tmp';
csTxtExt='txt';
csHlpExt='hlp';
{$ifndef ENGLISH}
csSrmFilter='书库文件(srm)|*.srm';
csOldFilter='2.x书库文件(dat)|*.dat';
csCreateTitle='新建';
csSaveAsTitle='另存为';
csOpenTitle='打开';
csTxtFilter='文本文件(txt)|*.txt';
{$else}
csSrmFilter='Srm File(srm)|*.srm';
csOldFilter='2.x Db File(tre,idx,dat)|*.tre;*.idx;*.dat';
csCreateTitle='Create';
csSaveAsTitle='Save As';
csOpenTitle='Open';
csTxtFilter='Txt File(txt)|*.txt';
{$Endif}
//状态栏相关常量
{$ifndef ENGLISH}
csPanel1Text='记录数:';
csPanel2Text='记录长度:';
{$ELSE}
csPanel1Text='Count:';
csPanel2Text='Current Size:';
{$ENDIF}
//杂类字符串
csHomePage='http://kiven.yeah.net';
csEMail='mailto:kiven@126.com';
csFriend='mailto:ayczq@126.com';
{$ifndef ENGLISH}
csPasswordTitle='请输入密码:';
csNewDefaultTitle='新标题';
csSaveQuery='数据库已改动,是否保存?';
csDeleteQuery='是否删除所选记录?';
csBrowseFolderInfo='请选择目录:';
csAuthorLabel='作者:';
csPasswordLabel='口令:';
csBuildDateLabel='建库日期:';
csEditDateLabel='修改日期:';
{$else}
csPasswordTitle='Input Password:';
csNewDefaultTitle='NewTitle';
csSaveQuery='Save changed File?';
csDeleteQuery='Delete records,sure?';
csBrowseFolderInfo='Select directry:';
csAuthorLabel='Author:';
csPasswordLabel='Password:';
csBuildDateLabel='Build Date:';
csEditDateLabel='Edit Date:';
{$Endif}
//错误显示信息
{$ifndef ENGLISH}
csAppExists='电子书库已经运行';
csOldFileError='原2.x版数据库不完整!';
csFindError='未发现匹配文本';
csPasswordError='密码错误!';
csIndexError='关键字总共只能有50个字符,此串太长';
csReplaceSucess='成功完成全文本的替换';
csDirExists='要导出的目录已存在';
csTechniqueSupport='老兄,开什么玩笑,免费软件也想要技术支持?';
csNotSrmFile='此文件不是SRM数据库或数据库已损坏';
csCanNotCreate='不能建立SRM文件';
{$else}
csAppExists='Stack Room already exists';
csOldFileError='Old dataBase file not intact!';
csFindError='Search not found';
csPasswordError='Password Error!';
csIndexError='Index key only 50 byte,This string is longer';
csReplaceSucess='Replace Succeed';
csDirExists='Directry exists,Select again';
csTechniqueSupport='What? Freeware has Technique Support?';
csNotSrmFile='this file is not SRM or file already bad';
csCanNotCreate='Can not create Srm File';
{$Endif}
implementation
end.
如果这些常量只想在本单元各个过程或函数中使用,则要写在implements后面且任一过程或函数前面。而如果这个常量你只想在本函数中使用,则在函数的var变量声明中声明即可。
---------------------------------- SrmConst.pas --------------------------------------------
unit SrmConst;
interface
const
//注册表相关常量,MainFun单元使用
csSrmFileType='\.srm';
csSrmCommand='\srm\shell\open\command';
{$ifndef ENGLISH}
csSrmFileDescribe='电子书库文档';
{$else}
csSrmFileDescribe='Srm Document';
{$endif}
{$ifndef ENGLISH}
csAppName='电子书库';
{$else}
csAppName='Stack Room';
{$endif}
//对话框相关常量
csSrmExt='srm';
csTreExt='tre';
csIdxExt='idx';
csDatExt='dat';
csTmpExt='tmp';
csTxtExt='txt';
csHlpExt='hlp';
{$ifndef ENGLISH}
csSrmFilter='书库文件(srm)|*.srm';
csOldFilter='2.x书库文件(dat)|*.dat';
csCreateTitle='新建';
csSaveAsTitle='另存为';
csOpenTitle='打开';
csTxtFilter='文本文件(txt)|*.txt';
{$else}
csSrmFilter='Srm File(srm)|*.srm';
csOldFilter='2.x Db File(tre,idx,dat)|*.tre;*.idx;*.dat';
csCreateTitle='Create';
csSaveAsTitle='Save As';
csOpenTitle='Open';
csTxtFilter='Txt File(txt)|*.txt';
{$Endif}
//状态栏相关常量
{$ifndef ENGLISH}
csPanel1Text='记录数:';
csPanel2Text='记录长度:';
{$ELSE}
csPanel1Text='Count:';
csPanel2Text='Current Size:';
{$ENDIF}
//杂类字符串
csHomePage='http://kiven.yeah.net';
csEMail='mailto:kiven@126.com';
csFriend='mailto:ayczq@126.com';
{$ifndef ENGLISH}
csPasswordTitle='请输入密码:';
csNewDefaultTitle='新标题';
csSaveQuery='数据库已改动,是否保存?';
csDeleteQuery='是否删除所选记录?';
csBrowseFolderInfo='请选择目录:';
csAuthorLabel='作者:';
csPasswordLabel='口令:';
csBuildDateLabel='建库日期:';
csEditDateLabel='修改日期:';
{$else}
csPasswordTitle='Input Password:';
csNewDefaultTitle='NewTitle';
csSaveQuery='Save changed File?';
csDeleteQuery='Delete records,sure?';
csBrowseFolderInfo='Select directry:';
csAuthorLabel='Author:';
csPasswordLabel='Password:';
csBuildDateLabel='Build Date:';
csEditDateLabel='Edit Date:';
{$Endif}
//错误显示信息
{$ifndef ENGLISH}
csAppExists='电子书库已经运行';
csOldFileError='原2.x版数据库不完整!';
csFindError='未发现匹配文本';
csPasswordError='密码错误!';
csIndexError='关键字总共只能有50个字符,此串太长';
csReplaceSucess='成功完成全文本的替换';
csDirExists='要导出的目录已存在';
csTechniqueSupport='老兄,开什么玩笑,免费软件也想要技术支持?';
csNotSrmFile='此文件不是SRM数据库或数据库已损坏';
csCanNotCreate='不能建立SRM文件';
{$else}
csAppExists='Stack Room already exists';
csOldFileError='Old dataBase file not intact!';
csFindError='Search not found';
csPasswordError='Password Error!';
csIndexError='Index key only 50 byte,This string is longer';
csReplaceSucess='Replace Succeed';
csDirExists='Directry exists,Select again';
csTechniqueSupport='What? Freeware has Technique Support?';
csNotSrmFile='this file is not SRM or file already bad';
csCanNotCreate='Can not create Srm File';
{$Endif}
implementation
end.
如果这些常量只想在本单元各个过程或函数中使用,则要写在implements后面且任一过程或函数前面。而如果这个常量你只想在本函数中使用,则在函数的var变量声明中声明即可。
展开全部
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
const
yy = 1;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
const
xxx = 0;
begin
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
const
yy = 1;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
const
xxx = 0;
begin
end;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询