クラスのプロパティを変数名で指定するには?

解決


vamview  2014-01-17 19:18:40  No: 45907

こんにちは。vamviewと申します。
いつもお世話になっております。

クラスのプロパティを変数名で指定することは可能でしょうか?
例えば、PanelのTopもしくはLeftを指定値に変更するような処理を実装したいときに、以下のような形式で指定したいのです。

PropertyName := 'Left';
Panel.ほにゃらら(PropertyName) := 10;

JavaScriptを例にすると、以下のような形です。

Panel[PropertyName] = 10;

ご存知の方いらっしゃいましたら宜しくお願いいたします。


ありい  2014-01-17 21:41:26  No: 45908

vamviewさん、こんにちは。

(Delphi-ML:60801 より)

Delphiのバージョンが不明ですが、D5以降ならusesにTypInfoを追加して、

SetPropValue(Panel, PropertyName, 10);

のように記述できます。但しPropertyNameに指定できるのはPublishedなプロパティ限定です。

#LeftはOKです。


vamview  2014-01-17 22:11:35  No: 45909

ありいさん、ご回答ありがとうございます。
まさに求めていたとおりの機能でした!
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加