Mega Code Archive

 
Categories / Delphi / Examples
 

List all properties, events of a component

Title: list all properties, events of a component? uses TypInfo; procedure ListComponentProperties(Component: TComponent; Strings: TStrings); var Count, Size, I: Integer; List: PPropList; PropInfo: PPropInfo; PropOrEvent, PropValue: string; begin Count := GetPropList(Component.ClassInfo, tkAny, nil); Size := Count * SizeOf(Pointer); GetMem(List, Size); try Count := GetPropList(Component.ClassInfo, tkAny, List); for I := 0 to Count - 1 do begin PropInfo := List^[I]; if PropInfo^.PropType^.Kind in tkMethods then PropOrEvent := 'Event' else PropOrEvent := 'Property'; PropValue := VarToStr(GetPropValue(Component, PropInfo^.Name)); Strings.Add(Format('[%s] %s: %s = %s', [PropOrEvent, PropInfo^.Name, PropInfo^.PropType^.Name, PropValue])); end; finally FreeMem(List); end; end; // Example: List all Properties/Events from Button1 in a TListBox procedure TForm1.Button1Click(Sender: TObject); begin ListComponentProperties(Button1, ListBox1.Items); end;