PageControl mit Registerkarten zur Laufzeit erstellen
PageControl mit Registerkarten zur Laufzeit erstellen
Hallo,
kann mir jemand erklären, mit welchen Befehlen man ein Pagecontrol zur Laufzeit erstellt und Registerkarten hinzufügt?
Die Logik dahinter habe ich anscheinend noch nicht verstanden, denn was ich bisher ausprobiert habe, funktioniert nicht.
kann mir jemand erklären, mit welchen Befehlen man ein Pagecontrol zur Laufzeit erstellt und Registerkarten hinzufügt?
Die Logik dahinter habe ich anscheinend noch nicht verstanden, denn was ich bisher ausprobiert habe, funktioniert nicht.
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: PageControl mit Registerkarten zur Laufzeit erstellen
Das geht, wenn man ein TTabSheet erzeugt und dessen Eigenschaft PageControl entsprechend setzt. Zum Beispiel:
Code: Alles auswählen
with TTabSheet.Create(self) do
begin
PageControl:=PageControl1;
Caption:='Test';
end;
Re: PageControl mit Registerkarten zur Laufzeit erstellen
Hm, bei folgendem Code erscheint zwar keine Fehlermeldung, aber das erzeugte Fenster ist leer:Scotty hat geschrieben:Das geht, wenn man ein TTabSheet erzeugt und dessen Eigenschaft PageControl entsprechend setzt. Zum Beispiel:
Code: Alles auswählen
with TTabSheet.Create(self) do begin PageControl:=PageControl1; Caption:='Test'; end;
Code: Alles auswählen
unit test2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ComCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
with TTabSheet.Create(self) do
begin
PageControl:=PageControl;
Caption:='Test';
end;
end;
initialization
{$I test2.lrs}
end.
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: PageControl mit Registerkarten zur Laufzeit erstellen
Da muss der richtige Name deines TPageControl's hin.400kmh hat geschrieben:Was fehlt noch?Code: Alles auswählen
PageControl:=PageControl;
Re: PageControl mit Registerkarten zur Laufzeit erstellen
Also so z.B.?Scotty hat geschrieben:Da muss der richtige Name deines TPageControl's hin.400kmh hat geschrieben:Was fehlt noch?Code: Alles auswählen
PageControl:=PageControl;
Code: Alles auswählen
var
Form1: TForm1;
PageControl1: TPageControl;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
with TTabSheet.Create(self) do
begin
PageControl:=PageControl1;
Caption:='Test';
end;
end;
Re: PageControl mit Registerkarten zur Laufzeit erstellen
Guck, mal unter "{Laz-Verzeichnis}\examples" nach, da gibts irgendwo ein Beisiel!
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!
it´s not a bug, it´s a feature!
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: PageControl mit Registerkarten zur Laufzeit erstellen
Du musst natürlich zuerst das PageControl erstellen (oder im Designer auf das Formular packen):
Code: Alles auswählen
TMyForm = class(TForm)
FThisPageControl: TPageControl;
end;
// ...
// im Constructor oder OnCreate
begin
FThisPageControl := TPageControl.Create(Self);
FThisPageControl.Parent := Self;
with TTabSheet.Create(Self) do
begin
PageControl := FThisPageControl;
Caption := 'Hallo';
end;
end;
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: PageControl mit Registerkarten zur Laufzeit erstellen
Danke. Jetzt funktioniert es.Socke hat geschrieben:Du musst natürlich zuerst das PageControl erstellen (oder im Designer auf das Formular packen):Code: Alles auswählen
TMyForm = class(TForm) FThisPageControl: TPageControl; end; // ... // im Constructor oder OnCreate begin FThisPageControl := TPageControl.Create(Self); FThisPageControl.Parent := Self; with TTabSheet.Create(Self) do begin PageControl := FThisPageControl; Caption := 'Hallo'; end; end;