Notice Of Closure

Please note that this website is due to close down on 15th June 2020.

In the interim I will try to move as much content as possible over to my GitHub account. Thanks to everyone who has supported the site over the years.

» Help

How to retrieve all available TBrushStyle values as a list of strings

   
Question 1
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 this options. How can I set the property Items 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;
Original resource: The Delphi Pool
Author: Sen
Added: 2013-04-09
Last updated: 2013-04-09

« Return to contents »