Delphi 如何将字符串转换为TPenStyle?
我在这里看到了一些非常相似的线程,但我找不到解决问题的方法。 我从Delphi 如何将字符串转换为TPenStyle?,delphi,Delphi,我在这里看到了一些非常相似的线程,但我找不到解决问题的方法。 我从TStringList中获取值,并将其用作钢笔样式(psDot,psSolid等等),但编译失败,类型不兼容:“TPenStyle”和“String”错误消息 代码如下: Image1.Canvas.Pen.Style := myList.ValueFromIndex[j]; 如何将myList.ValueFromIndex[j]转换为TPenStyle?如果存储为psDot,则psSolid必须进行调整 uses TypInf
TStringList
中获取值,并将其用作钢笔样式(psDot
,psSolid
等等),但编译失败,类型不兼容:“TPenStyle”和“String”错误消息
代码如下:
Image1.Canvas.Pen.Style := myList.ValueFromIndex[j];
如何将myList.ValueFromIndex[j]转换为
TPenStyle
?如果存储为psDot,则psSolid必须进行调整
uses TypInfo;
Image1.Canvas.Pen.Style := TPenStyle(GetEnumValue(TypeInfo(TPenStyle),myList.ValueFromIndex[j]));
正如David Heffernan所建议的
Function PenStyleFromName(const Name: string):TPenStyle;
begin
Result := TPenStyle(GetEnumValue(TypeInfo(TPenStyle),Name));
end;
//....
Image1.Canvas.Pen.Style := PenStyleFromName(myList.ValueFromIndex[j]);
如果存储为psDot,则psSolid,否则必须进行调整
uses TypInfo;
Image1.Canvas.Pen.Style := TPenStyle(GetEnumValue(TypeInfo(TPenStyle),myList.ValueFromIndex[j]));
正如David Heffernan所建议的
Function PenStyleFromName(const Name: string):TPenStyle;
begin
Result := TPenStyle(GetEnumValue(TypeInfo(TPenStyle),Name));
end;
//....
Image1.Canvas.Pen.Style := PenStyleFromName(myList.ValueFromIndex[j]);
这些绳子看起来怎么样?你有
“psDot”
等等吗?如果是这种情况,您可以从TypInfo
单元中使用GetEnumValue
。将其放在mylist中的代码在哪里?Style=psSolid Rectangle=201319485209 Style=psDash Rectangle=13,15181,78 Rectangle=206,12403,75 Rectangle=446,9639,74 Rectangle=28,95247190类似的内容在myList@Borlv:不需要更改标题问题解决了。这是由一个可接受答案的存在所暗示的。字符串看起来如何?你有“psDot”
等等吗?如果是这种情况,您可以从TypInfo
单元中使用GetEnumValue
。将其放在mylist中的代码在哪里?Style=psSolid Rectangle=201319485209 Style=psDash Rectangle=13,15181,78 Rectangle=206,12403,75 Rectangle=446,9639,74 Rectangle=28,95247190类似的内容在myList@Borlv:不需要更改标题问题解决了。这意味着存在一个可接受的答案。+1但是如果你把它作为一个函数写出来,答案会更好。你不会想在真正的代码中这样写的。太多的担忧交织在一起。我会编写函数PenStyleFromName(const Name:string):TPenStyle
并将该实现放在+1中,但如果将其作为函数编写,答案会更好。你不会想在真正的代码中这样写的。太多的担忧交织在一起。我将编写函数PenStyleFromName(const Name:string):TPenStyle
,并将该实现放入其中。