如何将字符串转换为TPenStyle?

时间:2012-11-22 18:11:48

标签: delphi

我在这里看到了一些非常相似的线程,但我找不到解决问题的方法。 我从TStringList获取值并将其用作笔样式(psDotpsSolid等等),但编译失败并显示Incompatible types: 'TPenStyle' and 'String'错误消息。

以下是代码:

Image1.Canvas.Pen.Style := myList.ValueFromIndex[j];

如何将myList.ValueFromIndex[j]转换为TPenStyle

1 个答案:

答案 0 :(得分:8)

如果存储为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]);