Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 676

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Есть некоторый объект TBase, в котором описан тип Type TFigure = (Rect,Elipse,RoundRect);
published
property TypeFigure : TFigure read fTypeFigure write SetTypeFigure ;

Теперь я хочу прочитать это свойство и занести в ValueListEditor, это я делаю. Но мне нужно еще прочитать и значения типа TFigure и занести их в выпадающий список. Помогите как это сделать.

Приложение:
  1. Type TFigure = (Rect,Elipse,RoundRect);
  2. published
  3. property TypeFigure : TFigure read fTypeFigure write SetTypeFigure ;
  4. ---------------------------------------------------------------------------------------------------------
  5.  
  6. Procedure TfMain.WriteVLE(VLE : TValueListEditor; NumObjList : Integer);
  7. Var
  8. I,J,N,Z,M: Integer; TypeData,D : PTypeData; List,L : PPropList; Obj : TBase; Key,Value : String; Ti : PTypeInfo;
  9. Begin Obj:=TBase(fEdit.List[NumObjList]); TypeData := GetTypeData(Obj.ClassInfo); N := TypeData.PropCount;
  10. If N < 0 then Exit;
  11. GetMem(List,SizeOf(PPropInfo)*N);
  12. try
  13. GetPropInfos(Obj.ClassInfo,List);
  14. For I:=0 to N-1 do
  15. Begin
  16.  
  17.  
  18. Key := List[i]^.Name;
  19. Case List[I].PropType^.Kind of
  20. tkInteger :
  21. Begin
  22. Value:= IntToStr(GetOrdProp(Obj,List[i]));
  23.  
  24. VLE.InsertRow(Key,Value,True);
  25. End;
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. tkEnumeration : Begin
  33. Value:= IntToStr(GetOrdProp(Obj,List[i]));
  34.  
  35.  
  36. VLE.ItemProps[VLE.RowCount-2].EditStyle:=esPickList;
  37.  
  38.  
  39.  
  40. VLE.ItemProps[VLE.RowCount-2].PickList.Add('1');
  41. VLE.ItemProps[VLE.RowCount-2].PickList.Add('2');
  42.  
  43. {
  44. Ti:=TypeInfo(TBrushStyle); //(TBrushStyle);
  45. D := GetTypeData(Ti);
  46. For j:=D.MinValue to D.MaxValue Do
  47. VLE.ItemProps[VLE.RowCount-2].PickList.Add(GetEnumName(Ti,j));
  48. }
  49. End;
  50. End; // Case
  51. End;//For
  52.  
  53. finally
  54. FreeMem(List,SizeOf(PPropInfo)*N);
  55. end;
  56.  
  57. End;
  58.  


RedDragon Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: RedDragon (статус: Посетитель)
Вопрос отправлен: 10 ноября 2017, 12:07
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:51
Выполнено за 0.02 сек.