小编Sal*_*rib的帖子

FPC:RTTI记录

这是我第一次访问这个网站.通常,我在旧帖中找到回复没有问题,但我的实际问题没有成功.

我想知道如何使用RTTI函数在运行时知道Lazarus/FPC下记录的属性/成员?我知道如何为一个类(Tpersistent后代和已发布的属性)执行此操作,但不知道如何为FPC执行此操作.一些链接指示如何在Delphi(来自D2010)下进行,但我不知道如何在Lazarus下转置它.

在此先感谢您的帮助和帮助.Salim Larhrib.

凯文:正如我之前所说,这是我的第一个要求.但是我明白.你是对的.这是我的代码

procedure TMainForm.btRecordTHashListClick(Sender: TObject);
var
  pTData    : PTypeData;
  pTInfo    : PTypeInfo;
  TablePtr  : PatableRecord;
  Loop      : Integer;
begin
  // Set of Record pointers + HashList

  // Create Container
  if  not Assigned(FTableRecList) then FTableRecList := TFPHashList.Create;

  // Insert data
  new(TablePtr);
  TablePtr^.description := 'Dictionnaire des tables.';
  FTableRecList.add('atable', TablePtr );

  new(TablePtr);
  TablePtr^.description := 'Dictionnaire des fonctions.';
  FTableRecList.add('afunction', TablePtr );

  new(TablePtr);
  TablePtr^.description := 'Dictionnaire des listes d''option.';
  FTableRecList.add('alist', TablePtr );

  // Read records
  for Loop:=0 to FTableRecList.Count-1 do
  begin
    TablePtr …
Run Code Online (Sandbox Code Playgroud)

freepascal lazarus fpc

5
推荐指数
1
解决办法
1362
查看次数

标签 统计

fpc ×1

freepascal ×1

lazarus ×1