Delphi 我试图在运行时添加TadvTabSet,但我遇到了一个错误

Delphi 我试图在运行时添加TadvTabSet,但我遇到了一个错误,delphi,runtime,delphi-xe2,add,Delphi,Runtime,Delphi Xe2,Add,在这段代码中,我试图在运行时添加TadvTabSet,但出现了一个错误: 模块Projet4.exe中地址00DC0FB0处的访问冲突。阅读地址00000258 导致它的代码: with tset.AdvTabs.Add do begin tag:=strtoint(en_vente.Text); name:='tab'+inttostr(tset.AdvTabs.count); caption:=enom.Text; end; 我看不出有什么问题。有人能帮你找出原因吗?例如,使

在这段代码中,我试图在运行时添加
TadvTabSet
,但出现了一个错误:

模块Projet4.exe中地址00DC0FB0处的访问冲突。阅读地址00000258

导致它的代码:

with tset.AdvTabs.Add do
begin
  tag:=strtoint(en_vente.Text);
  name:='tab'+inttostr(tset.AdvTabs.count);
  caption:=enom.Text; 
end;

我看不出有什么问题。有人能帮你找出原因吗?

例如,使用TPageControl,你需要先创建一个选项卡,然后添加到其中。。。 也许这里也是一样

myTab:= TTabSheet.Create(YourPageControlAsOwner); 
myTab.name:= ... 
myTab.caption:=... 
//and the asociated events you need after create 
myTab.onClick:= YourOwnMethod...

这是我通常使用的一个例子,除了这个答案,在TAdvOfficePage上创建组件的代码被删除了。不要忘记为添加到TAdvOfficePage的组件添加任何事件

procedure TForm1.AddOfficePage;
begin
  AdvOfficePage := TAdvOfficePage.Create(AdvOfficePager1);
  AdvOfficePage.Parent := AdvOfficePager1;
  AdvOfficePage.AdvOfficePager := AdvOfficePager1;
  AdvOfficePager1.AddAdvPage(AdvOfficePage);
  AdvOfficePager1.ActivePage := AdvOfficePage;
  {Add components next}
end;
哎呀。。。我现在看到您想要将TTabCollectionItem添加到TAdvTabSet

procedure TForm1.AddTabCollectionItem;
{ Add a TTabCollectionItem to TAdvTabSet. }
var
  i: Integer;
begin
  for i := 0 to 9 do
  begin
    ATabCollectionItem := AdvTabSet1.AdvTabs.Add;
    ATabCollectionItem.Caption := 'Tab Collection Item ' + IntToStr(i);
  end;
end;

如果你说“有一个错误”,你接下来要做的就是告诉我们错误是什么,包括确切的错误信息,那么帮助你就容易多了。你有这些信息就在你面前,而我们没有——你绝对没有理由不提供这些信息。如果您希望我们帮助您,请提供我们可以使用的信息。错误消息是法语的,因为我有一个Delphi版本,因此,我试图在模块Projet4.exe中的地址00DC0FB0处为您提供翻译:访问冲突。读取地址00000258。低(00000258)的地址通常表示访问尚未创建的对象。首先,用摆脱
;声明正确类型的变量,然后使用它:
NewTab:=tset.AdvTabs.Add;标签:=…
等等。然后在
NewTab:=
行设置一个断点,逐步检查代码,并找出哪一行导致错误。什么类型的TSET,显示声明及其创建位置。使用前,请检查
t设置为nil
。然后对tset.AdvTabs执行相同的操作:向我们显示
tset.AdvTabs
属性的数据类型声明,并在使用它之前选中
tset.AdvTabs nil
。同时检查
Self-nil
。谢谢你,我已经找到了解决方案,这是我所知道的最好的网站。