Delphi中const放在什么地方,最好有例子。

 我来答
canmeiaoxue
2011-06-28 · 超过10用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:32万
展开全部
没有绝对的,如果你这个单元中的常量要在其它的单元还访问,要放在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变量声明中声明即可。
zhouhui927
2011-06-27 · 超过78用户采纳过TA的回答
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:249万
展开全部
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.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式