TabbedNotebook problem

Spreemy

Grünschnabel
Hi,
ich hab n kleines bis mittelgroßes Problem mit meinem Programm.
Dieses hat so Karteikarten(TabbedNotebook) und ich will einzelne Karten per Knopfdruck erstellen, und dafür einen Namen angeben. Hab aber kein schimmer wie ich das lösen kann. Natürlich sollten die Elemente erhalten bleiben.

Danke schon im Voraus
 

Anhänge

  • screeny.jpg
    screeny.jpg
    24,5 KB · Aufrufe: 131
Ich verstehe dieses Problem so, dass du einem TabbedNotebook dynamisch neue Seiten hinzufügen willst. Das geht ganz einfach, wie du im Code unten siehst! Allerdings verwendet das Beispiel kein TabbedNotebook, sondern ein PageControl, da das TabbedNotebook ein Win3.1-Control und somit veraltet ist.

Das Programm hat ein PageControl sowie zwei Buttons, "new page" und "kill active page". "new page" erzeugt dynamisch eine neue Seite und fügt ihr einen Button hinzu, welcher eine Nachricht anzeigt mit der aktuellen Caption der Seite. Der Button "kill active page" entfernt die aktuell angezeigte Seite wieder.

Code:
unit tabbed_Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, TabNotBk;

type
  TForm1 = class(TForm)
    NewBtn: TButton;
    Tabs: TPageControl;
    KillBtn: TButton;
    Label1: TLabel;
    procedure NewBtnClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ClickmeClick( Sender: TObject ) ;
    procedure KillBtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ClickmeClick(Sender: TObject);
var
  b: TTabSheet ;
begin
  b := TTabSheet( TButton( Sender ).Parent ) ;
  ShowMessage( 'You clicked '+b.Caption+'!' ) ;
end ;

procedure TForm1.NewBtnClick(Sender: TObject);
var
  tab: TTabSheet ;
  btn: TButton ;
begin
  tab := TTabSheet.Create( Tabs ) ;
  tab.Caption := IntToStr( Random( 10000 ) ) ;
  tab.PageControl := Tabs ;
  btn := TButton.Create( Tabs ) ;
  btn.Left := 20 ;
  btn.Top := 50 ;
  btn.Width := 200 ;
  btn.Caption := 'Click me! '+tab.Caption ;
  btn.OnClick := ClickmeClick ;
  btn.Parent := tab ;
  Tabs.ActivePage := tab ;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize() ;
end;

procedure TForm1.KillBtnClick(Sender: TObject);
begin
  Tabs.ActivePage.Free() ;
end;

end.
 

Anhänge

  • tabbed.png
    tabbed.png
    2,5 KB · Aufrufe: 119

Neue Beiträge

Zurück