コンポーネントプロパティの有無を調べる
73 ExistProperty 動作確認 Delphi2007 更新日 2008/02/02(土)

GetPropInfoを使うことで
各コンポーネントにプロパティがあるのか無いのかを判定します。

次のコードではCaptionプロパティがあるコンポーネントだけ列挙しています。
────────────────────
uses TypInfo;

procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
  for i := 0 to ComponentCount - 1 do
  begin
    if IsPublishedProp(Components[i], 'Caption') then
    begin
      Memo1.Lines.Add(Components[i].Name);
    end;
  end;
end;

//Delphi4以前にはIsPublishedPropはないので次のようにしてください。
//IsPublishedPropは簡単に自作できそうですね。
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  p : PPropInfo;
begin
  for i := 0 to ComponentCount - 1 do
  begin
    p := GetPropInfo(Components[i].ClassInfo,'Caption');
    if P <> nil then
    begin
      Memo1.Lines.Add(Components[i].Name);
    end;
  end;
end;
────────────────────



さらに、フォントプロパティを'Font'という名称から取り出して
フォントサイズを変更してみましょう。
────────────────────
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  i : integer;
  F: TFont;
begin
  for i := 0 to ComponentCount - 1 do
  begin
    if IsPublishedProp(Components[i], 'Font') then
    begin
      F:=TFont(GetObjectProp(Components[i], 'Font', TFont));
      F.Size:=trunc(f.Size*1.25);
    end;
  end;
end;
────────────────────



参照────────────────────
BorlandManiacs/Delphi 専門1308
yukapapaさんの投稿から
※もうURLを調べきれないです。