を使用してTextSettings.Font.Styleプロパティを取得するフォームコンポーネントのプロパティを取得するためにDelphiのGetObjectProp関数を使用していますが、いくつかのコンポーネントのすべてのプロパティを取得できますが、TextSettings.Font TLabelのようなコンポーネントの.Style(太字、斜体、...)プロパティ私はコンポーネントのテキストが太字かイタリックかを知る必要があります。これらのプロパティを取得しようとしている手順は、次のとおりです。Delphi Tokyo 10.2
procedure Tfrm1.aoClicarComponente(Sender: TObject);
var
TextSettings: TTextSettings;
Fonte: TFont;
Estilo: TFontStyle;
Componente_cc: TControl;
begin
Componente_cc := TControl(Label1);
if IsPublishedProp(Componente_cc, 'TextSettings') then
begin
TextSettings := GetObjectProp(Componente_cc, 'TextSettings') as TTextSettings;
if Assigned(TextSettings) then
Fonte := GetObjectProp(TextSettings, 'Font') as TFont;
if Assigned(Fonte) then
Estilo := GetObjectProp(Fonte, 'Style') as TFontStyle; // <-- error in this line
if Assigned(Estilo) then
Edit1.text := GetPropValue(Estilo, 'fsBold', true);
end
end;
上記の行に表示されるエラーは次のとおりです。
[dcc64エラー] uPrincipal.pas(1350):このオペランドタイプ
には適用されませんE2015のオペレータは、私が間違って何をしているのですか?
を例では、私はよりよいのためのコードを簡素化理解することができますが、実際のアプリケーションでは、実行時に作成されたコンポーネントで任意のクラスにすることができるため、より複雑です。したがって、rttiを使用しています。私はそれをTFontStyles segestaoに変更しましたが、エラーは残ります。 – Anderson
'Style'は' TFontStyles'型であり、オブジェクト型ではなくtypeプロパティのセットです。そして 'fsBold'はプロパティではなく、そのセットの可能なメンバーです。 – Victoria
しかし、オブジェクト型でない場合は、どのようにプロパティを取得しますか? – Anderson