超级难题,大家都来看看,UP给分

Hs_Boy 2002-12-16 10:47:56
function (a,b: char): string;
const
bt = '%s am %s';
var
tmp: String;
begin
tmp := a+b;
result := format(tmp,['i','boy']);
//我这么做的实际意思是:
//result := format(bt,['i','boy']);
//我想通过tmp去引用常量bt的值
end;
showmessage(bt('b','t'));
显示I AM BOY!

这里的问题是:我想通过TMP的值,取应用常量BT的值
但是tmp的值是字符串,不是变量!!!!
...全文
51 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
songdan2002 2002-12-17
  • 打赏
  • 举报
回复
up
hanly2008 2002-12-17
  • 打赏
  • 举报
回复
学习
fangchangjiang 2002-12-17
  • 打赏
  • 举报
回复
up
chougoushi 2002-12-16
  • 打赏
  • 举报
回复
做个表吧,3000个id会比较好说点吧,或者利用这种对照的思想
id shuoming
0 无
1 一
2 二
.. ..
.. ..


输出使用

第x个有错
wangchinaking 2002-12-16
  • 打赏
  • 举报
回复
up
http://wangchi_cn.8u8.com/cashfiesta/cash_index.htm
youxia001 2002-12-16
  • 打赏
  • 举报
回复
up
crystal_heart 2002-12-16
  • 打赏
  • 举报
回复
up
findcsdn 2002-12-16
  • 打赏
  • 举报
回复
用case语句了。
flyycyu 2002-12-16
  • 打赏
  • 举报
回复
up
Hs_Boy 2002-12-16
  • 打赏
  • 举报
回复
简单是简单,,,可是很有用,
我的错误可不只由个,可能有3000个,3000个,,,
不是开玩笑哦,,,,
rainsea 2002-12-16
  • 打赏
  • 举报
回复
为了一个简单的功能,太烦琐了。
上面这位的就可以。
hanxudong 2002-12-16
  • 打赏
  • 举报
回复
用常量数组:
type TErrorMessage = array[0..3] of String;

const ErrorMesssage: TErrorMessage = ('%s错误!','%s错误!','%s错误!');
Hs_Boy 2002-12-16
  • 打赏
  • 举报
回复
给个建议吧,!!!!!!!!!!
inforum 2002-12-16
  • 打赏
  • 举报
回复
你这样做烦了,没必要!
Hs_Boy 2002-12-16
  • 打赏
  • 举报
回复
是的,我是想用字符串来访问变量!!!!!!!
Hs_Boy 2002-12-16
  • 打赏
  • 举报
回复
或许我是进了牛角了,不好意思各位,我想实现的功能是这样的:
const
L201210001= '%s错误!';
L201210002= '%s错误!';
L201210002= '%s错误!';
L201210002= '%s错误!';
function (a,b,c: String): string;
var
tmp: String;
begin
tmp := 'L'+a+b;
result := format(tmp,[c]);
end;
showmessage(bt('2012','10001','第一个'));
显示:第一个错误!
showmessage(bt('2012','10002','第二个'));
显示:第二个错误!
showmessage(bt('2012','10003','第三个'));
显示:第三个错误!
根据传入参数的组合,来取不同的常量的值,来显示不同的信息!
我是用常量来做,各位看看,用什么方法呢(请不要说用文件)!!
谢谢各位!

s_eye 2002-12-16
  • 打赏
  • 举报
回复
'在Delphi中,没有VC的宏这样的手段':此话不确切,宏只是一个预处理的工具,不能用来实现楼主所要的功能.你在VC中又如何'用字符串取引用常量的值'呢?我是说按楼主需要的方式.
宏,如effective C++中所说,是应该在oop中尽量避免的,当然,我已经跑题了.
laihecongxi 2002-12-16
  • 打赏
  • 举报
回复
问题看不懂。
rainsea 2002-12-16
  • 打赏
  • 举报
回复
能把你到底想要实现什么说清楚吗?

是不是想通过字符串来访问变量,或者函数名字这类问题?
rainsea 2002-12-16
  • 打赏
  • 举报
回复
呵呵,不就是想实现C++中的define吗,看来你用VC用多了,呵呵
你可以写一个函数,何必钻牛角尖呢?
function Myconcat(a,b: String): string;
function CC(a,b): String
begin
result = a+' am '+b + '!';
end;
begin
result := CC(a,b);
end;
showmessage(myconcat('I', 'boy'));
显示I AM BOY!

呵呵,一个函数就够了,这样写是为了和楼主的意图一致,或许我理解错了?
加载更多回复(13)

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧