Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Получить все значения перечисляемого типа


Автор: maximjon 26.6.2010, 20:23
При проходе по свойствам необходимо узнать все возможные значения для него. Для GetEnumName работает и берёт значения из ординальных типов, но вот функция GetSetElementName вызывает ошибку. Входящие данные все перепроверил, они верны.

Код:
Код

var
  vProperty: PPropInfo;
  ValueListEditor: TValueListEditor;
  CheckListBox1: TCheckListBox;

procedure TValueEditor.GetVariants;
var
  vData: PTypeData;
  i: integer;
  Value, s: string;
  vTypeInfo: PTypeInfo;
begin
  Assert(vProperty<>nil,'Свойство не указанно!');
  s:=ValueListEditor.Strings.ValueFromIndex[vIndex];
  vData:= GetTypeData(vproperty^.PropType^);
  for i := vData^.MinValue to vData^.MaxValue do
  begin
    Value:= GetSetElementName(vProperty^.PropType^,i);//Здесь возникает ошибка Access Violation
      CheckListBox1.Items.Add(Value);
    if pos(Value,s)>0 then CheckListBox1.Checked[CheckListBox1.Count-1]:=True;
  end;
end;


К слову vProperty<>nil, не могу понять в чём дело.
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)