如果把 一个类名或变量 变成 字符串 ( 积分: 5 )

  • 主题发起人 主题发起人 青云
  • 开始时间 开始时间

青云

Unregistered / Unconfirmed
GUEST, unregistred user!
比如
var
From1:Tform1;
s1,s2:string;
begin
s1:=ConvertToString(TFrom1); // 相当于 s1:='TFrom1';
s2:=ConvertToString(From1); // 相当于 s2:='From1';
end;
上面的代码肯定是编译 不通过, 我只是表达一个意思。

不知道上面的功能该如何实现。
 
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(TForm1.ClassName);
ShowMessage(Form1.Name);
end;


??????????????????
 
楼上朋友的回答是对的 。
只是我的例子举的不太好,其实我想达到的效果是这样:
var
CustNo:string;
s:string;
begin
s:=VarConvertToString(CustNo); // 相当于 s:='CustNo';
end;
 
好像不太可能,因为CustNo这样的变量,在编译器看来就是一个地址而已,编译后已经没有名称信息存在了。
 
取类名和对象名就是那么取的。
如果反向的话, 必须是持久化类派生的, 或者需要注册的。
 
楼主还是想别的办法吧,变量名是编译的东西,编译完成之后,就不存在,怎么可以从运行时去访问编译时的东西,用反射可以找到成员变量的名称,但是变量不行,除非你是解释型的语言,如:javascript,这个是可以的
 
偶是笨鸟..看不明..哈哈
 
真是SB一个
 
请参考一下cnpack中滴 那个OnMi?XML(名字可能用误)组件应用

你这个是想把 对象或者窗体 编码转成字符串 然后再还原成对象。。。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
I
回复
0
查看
455
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部