--- ---
Question
I need to get a list of strings (like a string list) with the possible values for a TBrushStyle property (bsSolid, bsClear, bsHorizontal, for example). I want to build a combo box with these options. How can I set the Items property of my combo box directly with all the values from the enumerated type TBrushStyle? My combo box will be like the property editor for this type.

You can use runtime type information (RTTI) to do that. Below is an example:

    uses
      {...}, TypInfo

    procedure BrushStylesAsStrings(AList: TStrings);
    var
      a: integer;
      pInfo: PTypeInfo;
      pEnum: PTypeData;
    begin
      AList.Clear;
      pInfo := PTypeInfo(TypeInfo(TBrushStyle));
      pEnum := GetTypeData(pInfo);
      with pEnum^ do
      begin
        for a := MinValue to MaxValue do
          AList.Add(GetEnumName(pInfo, a));
      end;
    end;