Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

Как получить список допустимых констант для перечисления   Найти похожие ветки 

 
PRM   (2004-11-01 16:26) [0]

Здравствуйте. Необходимо получить список констант перечисления, типа вот так как ниже,только необходимо вместо TBrushStyle имя перечисления необходимо задавать строкой

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


 
Юрий Зотов ©   (2004-11-01 16:40) [1]

Если строка - имя класса, то Get/FindClass дают ссылку на класс по его строковому имени. Подставляете вместо TBrushStyle и все.

Если же это просто любая строка, то придется делать ручками.


 
PRM   (2004-11-02 09:48) [2]

Чёто не понял.........TBrushStyle  перечисление, а не класс......
Разве Get/FindClass позволяет получать информацию о перечислениях????
Вообще я решил задачу по другому. Я использовал не тип перечисления, свойство объекта, заданного типа......Получилось следующее
procedure TEnumPropElementsAsStrings(Obj:TObject;PropName:String;AList:
   TStrings);
var
 i: integer;
 pInfo: PTypeInfo;
 pEnum: PTypeData;
begin
 AList.Clear;
 pInfo:=GetPropInfo(Obj,PropName)^.PropType^;
 if pInfo.Kind=tkEnumeration then
 begin
 pEnum := GetTypeData(pInfo);
 with pEnum^ do
 begin
   for i := MinValue to MaxValue do
     AList.Add(GetEnumName(pInfo, i));
 end;
 end
else
Raise Exception.Create("Свойство не является перечислением!");
end;


 
Юрий Зотов ©   (2004-11-02 13:26) [3]

> PRM   (02.11.04 09:48) [2]

Сорри, нечетко понял вопрос.
Можно сделать гораздо проще:

uses
 TypInfo;

type
 TMyEnum = (me0, me1, me2);

procedure TForm1.FormCreate(Sender: TObject);
var
 i: integer;
begin
 for i := Ord(Low(TMyEnum)) to Ord(High(TMyEnum)) do
   ListBox1.Items.Add(GetEnumName(TypeInfo(TMyEnum), i))
end;



Страницы: 1 вся ветка

Форум: "Компоненты";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
3-1123149343
surkis
2005-08-04 13:55
2005.09.18
Даты в MSSQL


9-1116839722
Шухрат
2005-05-23 13:15
2005.09.18
плагины unwrap3d 2.15


3-1123403894
makvell
2005-08-07 12:38
2005.09.18
Компонент для отображения текста и графики?


3-1123092157
Максим
2005-08-03 22:02
2005.09.18
Транзакции в Ado


5-1099390263
slim
2004-11-02 13:11
2005.09.18
Font нод в TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский