4个简单的类型转化问题,恐怕高手也不能都回来答出来!!! (50分)

  • 主题发起人 主题发起人 蔓草
  • 开始时间 开始时间

蔓草

Unregistered / Unconfirmed
GUEST, unregistred user!
1:我声明了一个这样枚举类型:
type
TEditControl = (CTedit, CTlabel);
我可以通过
procedure TFrmmain.Button1Click(Sender: TObject);
var
s:string;
begin
s:=GetEnumName(TypeInfo(TEditControl),Ord(CtLabel));
button1.Caption:=s;
end;
来转化成字符传,但是我如何把字符串转化成我自己定义的类型呢?
2:
var ED: Tedit;
假如我有一个变量字符串是S:="Tedit",我应该怎么来s来代替上面的声明呢?
欢迎大家多多讨论!
3:
如何把一个rect转换成一个string,在如何转换回来呢?
4:(这个肯能有点异想天开)
我们经常写这样的代码
procedure TFrmmain.Button1Click(Sender: TObject);
var
s:string;
begin
s:="反对";
button1.Caption:=s;
end;

能不能把这个事件里代码保存出来,放在一个文件里,以后如果修改代码,就不用修改
原程序了,修改文件里的东西就可以,这个可能作到吗?
 
var ED: TEdit;
begin
ED := FindComponent('Edit1') as TEdit;
ED.Enabled := False;
end;
 
Sachow:
我说的是上面声明的那个Tedit啊!
 
2。
应该是不允许的
3。看看定义先
type
TRect = packed record
case Integer of
0: (Left, Top, Right, Bottom: Integer);
1: (TopLeft, BottomRight: TPoint);
end;
 
各位:
答不出来也帮忙提前一下啊!
 
听你的意思有好像想作个解析器.
 
seaboy:
可能是吧,我也不是很清楚,想做一个可以界面编辑器!
 
4.写一个DLL,以后只修改DLL就行啦。
 
干脆下个Pascal解释器得了, 所有问题都可以解决
可以看看: Dream Collection里的解释器、PasScript、DelphiN等等, 一大堆
 
看这需求越提越多,像是要做个X Builder了,学生不会。
对于第4条,通常只有SQL指令适合这样做,从一个文本文件里读出来执行,不用改程序。
而对于一般的业务逻辑不能这样做,因为Delphi是编译型的,除非你自己用Delphi做一个
简单的解释器,或是像楼上所说,用其它的解释器。
 
问题是越来越复杂了,本人写程序的原则这样的。比喻说:以你
4:(这个肯能有点异想天开)
我们经常写这样的代码
procedure TFrmmain.Button1Click(Sender: TObject);
var
s:string;
begin
s:="反对";
button1.Caption:=s;
end;
以这个想法为例:这种思想只适合解释型的语言,如解释BASIC、FoxPro、SQL等语言,对于
编译型的语言如:delphi、C++等等,你就没有办法这样去做了。
你可以在程序中写上你所可能需要的所有过程,再用一个指针函数来操作就行了。
一个程序中,多几个几十个无用的函数算得了什么呢?大家说是不是?


 
楼上几位高手都已经讨论的很深刻了
其实这几个问题归结起来就是"解释",
这在<编译原理>课程里面已经讨论过其基本的处理办法了

 
一个最简单的问题(10分),恐怕高手也答不出来:我要做个 Windows

死心吧,这些问题有解,但不是你现阶段能够接收或掌握的。
抓紧时间学点其他的东西。
 
把东西转成string保存起来
procedure TForm1.Button1Click(Sender: TObject);
var
Stream: TMemoryStream;
StringList: TStringList;
begin
Stream := TMemoryStream.Create;
StringList := TStringList.Create;
Stream.WriteComponent(Shape1);
Stream.Position := 0;
StringList.LoadFromStream(Stream);
Memo1.Text := StringList.Text;
end;
同样方法能转回来
 
哈哈,这个问题,我也曾想过,如果这样可以的话,你就可以把代码放在资源文件里面保存起来了。
那么........你就以后不要编译器了,只要第一次编译一次那个EXE,
不过,听听吧,说不定有高高手呢....
 
不要说高手,就是菜鸟见了也不敢胡说。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
923
SUNSTONE的Delphi笔记
S
后退
顶部