1

ここで非常によく似たスレッドをいくつか見ましたが、問題の解決策を見つけることができませんでした。から値を取得しTStringListてペンスタイル(psDotなどpsSolid)として使用しますが、コンパイルが失敗し、Incompatible types: 'TPenStyle' and 'String'エラーメッセージが表示されます。

コードは次のとおりです。

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

どうすれば変換できmyList.ValueFromIndex[j]ますTPenStyleか?

4

1 に答える 1

8

psDot、psSolidとして保存されている場合、それ以外の場合は適応する必要があります

uses TypInfo;

Image1.Canvas.Pen.Style := TPenStyle(GetEnumValue(TypeInfo(TPenStyle),myList.ValueFromIndex[j]));

DavidHeffernanによって提案されたように

Function PenStyleFromName(const Name: string):TPenStyle;
begin
  Result := TPenStyle(GetEnumValue(TypeInfo(TPenStyle),Name));
end;

//....
Image1.Canvas.Pen.Style := PenStyleFromName(myList.ValueFromIndex[j]);
于 2012-11-22T18:17:16.163 に答える