如何用字符串给SPCOM的枚举类型赋值? (100分)

  • 主题发起人 主题发起人 大愚
  • 开始时间 开始时间

大愚

Unregistered / Unconfirmed
GUEST, unregistred user!
动态生成SPCOM,参数是字符串形式,从INI文件中读取
ccom:=tcomm.Create(Application);
ccom.CommName:=CheckListBox1.Items[ComCount];//com口列表;
ccom.BaudRate:=strtoint(ini.ReadString(CheckListBox1.Items[ComCount], 'Baud', '9600'));
ccom.ByteSize:=ini.ReadString(CheckListBox1.Items[ComCount], 'ByteSize', '_8');//ccom.ByteSize的类型是枚举类型的,该如何赋值?

if ini.ReadString(CheckListBox1.Items[ComCount], 'ByteSize', '_8')='_8' then
ccom.ByteSize:=_8;
很麻烦的,我不想用。
 
用强制转换啊。
ccom.ByteSize:=ENUM_TYPE(ini.ReadString(CheckListBox1.Items[ComCount], 'ByteSize', '_8'));
 
这样好像不行吧
 
我看了一下源码,它里面也没有多少
TByteSize = ( _5, _6, _7, _8 );
就四个,多少判断一下,改一下spcomm写一个方法函数就行了。
funtion bz(s:string):ByteSize;
begin
result:=_8;
if s='_5' then
result:=_5;
.....
end;

然后你不就可直接赋值了???
ccom.ByteSize:=ccom.bz(ini.ReadString(CheckListBox1.Items[ComCount], 'ByteSize', '_8'));//
 
方法是可以,但觉得有点繁琐,我现在这个问题这样解决还可以,但要是更复杂的情况呢?有没有更好的方法?
 
ini里的字符串改用枚举类型的Ord
 
能给个具体用法吗?
 
没人回答,结帖
 

Similar threads

I
回复
0
查看
416
import
I
I
回复
0
查看
600
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部