Obter tipo de uma propriedade no Delphi

Inclua na seção uses: TypInfo

  Esta função retorna uma string com o nome do tipo de dado
  de uma propriedade. Exemplos de retornos:
  


  PropType(Button1, 'Caption'); // Retorna 'TCaption'
  PropType(Edit1, 'Width'); // Retorna 'Integer';
  PropType(Edit1, 'Color'); // Retorna 'TColor';


function PropType(const Obj: TObject; const PropName: string): string;
var
  Info: PPropInfo;
begin
  Info := GetPropInfo(Obj.ClassInfo, PropName);
  if Assigned(Info) then
    Result := Info^.PropType^.Name
  else
    Result := '';
end;

 Exemplo de uso:
 - Coloque um TButton e um TEdit;
 - No OnClick do Button1 coloque o código abaixo;
 - Execute, digite 'Caption' no Edit1 e clique em Button1.


procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage(PropType(Button1, Edit1.Text));
end;

Verdadeiramente não sei exatamente onde poderíamos aplicar esta dica, mas divulguei-a porque achei interessante. Acredito que o Object Inspector use algo parecido.