Ludens
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Столкнулся с тем, что главная RTTI-функция GetPropInfo выдает ошибку Access Violation в том случае, если аргументом выступает перечисляемый тип, базирующийся не на нуле. Вот пример: Код: unit Unit1; interface uses TypInfo, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Menus, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } type TZeroBased = (zbZero, zbOne, zbTwo); // первый элемент 0 TOneBased = (obOne = 1, obTwo, obThree); // первый элемент 1 var FZeroBased: TZeroBased; FOneBased: TOneBased; published property ZeroBased: TZeroBased read FZeroBased write FZeroBased; property OneBased: TOneBased read FOneBased write FOneBased; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin // отрабатывает нормально Button1.Caption := GetPropInfo(Form1, 'ZeroBased')^.Name; end; procedure TForm1.Button2Click(Sender: TObject); begin // выдает ошибку Access Violation Button2.Caption := GetPropInfo(Form1, 'OneBased')^.Name; end; end. | Не баг ли это в TypInfo? Никто не сталкивался с подобным? |