怎样将Tfontstyle里面的各项转换为字符串?
大家都知道,Tfontstyles是一个类型集合,即:Tfontstyles=set of Tfontstyle.
Tfontstyle=(fsbold,fsunderline,fsItalic,fsDtrikeout).
我现在想把fsbold,fsunderline,fsItalic,fsDtrikeout显示在checkbox中,怎么做?这只是举个例子,我的项目中自己编写的控件中需要这么做,只是用Tfontstyle说说问题,道理是一样的!谢谢!!!
[解决办法]
Tfontstyle=(fsbold,fsunderline,fsItalic,fsDtrikeout).
是一个枚举型.
枚举型的实质是有序的数字.
可以做一个数组.
fontStyleStr:array [TFontStyle] of string = ( '粗体 ', '下划线 ', '斜体 ', '删除线 ');
Tfontstyles=set of Tfontstyle.
是一个集合.
可以用in操作.例如:
var
fontstyles:TFontStyles;
if fsbold in fontstyles then
checklistbox.items.add(fontStyleStr[fsbold]);
再举一个例子:
var
i:TfontStyle;
for i:=fsbold to fsDtrikeout do
begin
if s=fontStyleStr[i] then //这里的s就是你显示在界面上的字符串.想怎么弄就怎么弄
begin
.....//这里就可以做你想做的操作,i就是结果.
break;
end
end;
明白的话,就可以举一反三了.其他枚举型和集合型都可以类似操作.
[解决办法]
其实各类型也都是枚举类型的,每个值也只是个整数
[解决办法]
枚举类型的集合元素名称,只是在编译前有效,编译后,就不复存在。所以你要自己写代码。用Case分支即可 (上述言论,个人看法)