Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi PageControl "Seitenverwaltung" (https://www.delphipraxis.net/122582-pagecontrol-seitenverwaltung.html)

Störtebeker 18. Okt 2008 21:14


PageControl "Seitenverwaltung"
 
Hi, man kennt es aus diversen Programmen:
Das gleichzeitige Öffnen von mehreren Datein.

Momentan erzeuge ich die Tabs wie folgt:

Delphi-Quellcode:
procedure TForm1.NeuClick(Sender: TObject);
var
  ts : TTabsheet;
  se: TSynEdit;
begin
  ts := TTabsheet.Create(PageControl4);
  ts.PageControl := PageControl4;
  se:= TSynEdit.Create(ts);
  se.Parent := ts;
  ts.Caption := 'Dokument 1';
end;
Nun möchte aber, dass

1) wenn ich einen neue Datei öffne, die Tabs einer nach dem anderen durchnummeriert wird wie
z.B. "Dokument 1" ; "Dokument 2" ; etc.

2) wie geht das dann mit dem Öffnen und Speichern der Tabs?

Danke schonmal im Voraus.

blawen 18. Okt 2008 23:29

Re: PageControl "Seitenverwaltung"
 
Deine Frage(n) verstehe ich nicht wirklich...

Gehts Dir nur um die Register-Beschriftung
Delphi-Quellcode:
ts.PageControl.Pages[2].Caption := 'Dokument 1';
oder wie die Seite gewechselt wird
Delphi-Quellcode:
ts.PageControl.ActivePage := ts.PageControl.Pages[1];
oder was möchtest Du genau wissen?

Störtebeker 18. Okt 2008 23:42

Re: PageControl "Seitenverwaltung"
 
Na ja, die Frage 1 ist, wie ich es schaffe, dass die Tabs automatisch beschriftet werden.

z.B.: Klick auf Neu... Erstelle Tab -> Caption: Dokument 1
Klick erneut auf Neu... Erstelle weiteren Tab -> Caption: Dokument 2

blawen 19. Okt 2008 00:00

Re: PageControl "Seitenverwaltung"
 
Zitat:

Zitat von Störtebeker
Na ja, die Frage 1 ist, wie ich es schaffe, dass die Tabs automatisch beschriftet werden.

Steht soweit in meiner vorherigen Antwort.

Ein weiteres Bsp.:
Delphi-Quellcode:
var
  iZaehler: Integer;

begin
  with PageControl1 do
    for iZaehler := 0 to 5 do
      with TTabSheet.Create(Self) do
        begin
          PageControl := PageControl1;
          Caption := 'Dokument ' + IntToStr(iZaehler);
        end;
end;

Störtebeker 19. Okt 2008 00:23

Re: PageControl "Seitenverwaltung"
 
Danke schonmal. :)

Wenn du zufällig auch das passene in Bezug aufs Öffnen und Speichern hättest, wäre ich glaube ich soweit.

blawen 19. Okt 2008 00:34

Re: PageControl "Seitenverwaltung"
 
Zitat:

Zitat von Störtebeker
Wenn du zufällig auch das passene in Bezug aufs Öffnen und Speichern hättest, wäre ich glaube ich soweit.

Mir ist nicht klar was Du unter "öffnen und speichern" verstehst. Kannst Du hier etwas genauer werden?

Störtebeker 19. Okt 2008 00:42

Re: PageControl "Seitenverwaltung"
 
- Ich möchte, dass wenn ich auf "Öffnen" klicke, ein neuer Tab erstellt wird, dessen Caption der
Dateiname ohne Pfad (c:/.../.../blabla.txt --> blabla.txt) ist.

- Beim Speichern möchte ich, dass der Dialog für das Speichern DEN Text speichert, dessen Tab gerade
aktiv ist. Müsste dann wahrscheinlich auch mit den Integerwerten gemacht werden, oder? Damit der
Dialog weiß, auf welchen Tab er zugreifen soll.

Hoffe, es ist etwas verständlicher geworden. :oops:

alzaimar 19. Okt 2008 07:47

Re: PageControl "Seitenverwaltung"
 
Bei dem PageControl müsste es eine Eigenschaft geben, die die aktive Seite (engl: Active Page) angibt.

toms 19. Okt 2008 08:54

Re: PageControl "Seitenverwaltung"
 
Hallo

Das aktuelle SynEdit kannst du so ermitteln.
(Vorausgesetzt, auf einem Tab befindet sich nur ein TSynEdit und kein anderes Control)

Delphi-Quellcode:
function TForm1.GetCurrentSynEdit: TSynEdit;
var
  i: SmallInt;
begin
  Result := nil;
  for i := 0 to PageControl1.ActivePage.ControlCount -1 do
  begin
    if (PageControl1.ActivePage.Controls[i] is TSynEdit) then
    begin
      Result := TSynEdit(PageControl1.ActivePage.Controls[i]);
      Break;
    end;
  end;
  // Assert(Result <> nil);
end;

hoika 19. Okt 2008 09:09

Re: PageControl "Seitenverwaltung"
 
Hallo,

um den Dateinamen des aktuellen Tabsheets zu ermitteln,
würde ich einfach ein unsichtbares TLabel
mit auf jedes neue TabSheet packen.
Dort speicherst du den Dateinamen.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz