Добавляем ID. Допустим ID=1.
TabControl.Tabs.AddObject(Description, TObject(ID));     
Получаем ID.
Result :=longint(TabControl.Tabs.Objects[TabControl.TabIndex]);
Почему Result не равен 1?
			
		Модератор: Модераторы
TabControl.Tabs.AddObject(Description, TObject(ID));PutObjectProcedure TStrings.PutObject(Index: Integer; AObject: TObject);
begin
  // Empty.
end;
Procedure TStringList.PutObject(Index: Integer; AObject: TObject);
begin
  If (Index<0) or (INdex>=Fcount)  then
    Error (SListIndexError,Index);
  Changing;
  Flist^[Index].FObject:=AObject;
  Changed;
end; unit Unit1; 
{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
  StdCtrls;
type
  { TForm1 }
  TForm1 = class(TForm)
    Button1: TButton;
    TabControl1: TTabControl;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TabControl1Change(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 
var
  Form1: TForm1; 
  Str:TStringList;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var B:TButton;
begin
    if Str = nil then
    Str:= TStringList.Create;
    B:=TButton.Create(self);
    B.Tag:=10;
    TabControl1.Tabs.AddObject('Id=1',B);
    Str.AddObject('1',B);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
procedure TForm1.TabControl1Change(Sender: TObject);
begin
    Caption:='';
    Caption:=IntToStr(TButton(TabControl1.Tabs.Objects[TabControl1.TabIndex]).Tag);
    Caption:=Caption+'  '+IntToStr(TButton(Str.Objects[0]).Tag);
end;
end.
Maxizar писал(а):И вообще TStrings - яв-ся классом от которого должны только наследовать на сколько я знаю из делфи...

Иван Шихалев писал(а):И реально там объект другого класса, наследника.
property Tabs: TStrings read FTabs write SetTabs; property Tabs: TStringsTabs read FTabs write SetTabs; TStringsTabs=class(TStrings) 
тру ля ля...
constructor TCustomTabControl.Create(TheOwner: TComponent); 
...
  FTabs:=TTabControlNoteBookStrings.Create(Self);
...
end;
...
procedure TTabControlNoteBookStrings.PutObject(Index: Integer; AObject: TObject
  );
begin
  FNoteBook.Pages.Objects[Index]:=AObject;
end; 
...
  TCustomNotebook = class(TWinControl)     
...
    property Pages: TStrings read FAccess write SetPages;
...
end;
...
constructor TCustomNotebook.Create(TheOwner: TComponent);
...
  fAccess := TNBPages.Create(TListWithEvent(fPageList), Self);
...
end;
  TNBPages = class(TStrings)
...
    function GetObject(Index: Integer): TObject; override;
    procedure Put(Index: Integer; const S: String); override;
  public
    constructor Create(thePageList: TListWithEvent;
                       theNotebook: TCustomNotebook);
...
end;

Пока не допишут метод, который должен быть перекрыт. Метод про который говорил Mr.Smartalexkam писал(а):Выходит в TabControl нельзя добавить ID объекта?
alexkam писал(а):Можно пример кода привязки объекта к TabControl?
unit Unit1; 
{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
  StdCtrls;
type
  { TForm1 }
  TForm1 = class(TForm)
    Button1: TButton;
    TabControl1: TTabControl;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure TabControl1Change(Sender: TObject);
  private
    { private declarations }
  public
    function AddTab(const NameTab:String; AObject:TObject):Integer;
    { public declarations }
  end; 
var
  Form1: TForm1; 
  Tab:TStringList;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
  Tab:=TStringList.Create;
end;
procedure TForm1.TabControl1Change(Sender: TObject);
begin
  caption:=IntToStr(TabControl1.TabIndex)+'  ';
  caption:=caption+TButton(Tab.Objects[TabControl1.TabIndex]).Caption;
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  Tab.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var B1:TButton;
begin
    B1:=TButton.Create(Self);
    B1.Caption:='Button'+IntToStr(Tab.Count);
    AddTab(B1.Caption,B1);
end;
function TForm1.AddTab(const NameTab: String; AObject: TObject):Integer;
begin
  Result:=Tab.AddObject(NameTab,AObject);
  TabControl1.Tabs.Add(NameTab);
end;
end.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1