Delphi-PRAXiS

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/)
-   -   TPageControl - Alternative ? (https://www.delphipraxis.net/215075-tpagecontrol-alternative.html)

Graf Gustav 3. Mai 2024 13:23

TPageControl - Alternative ?
 
Hallo Insider,
ich benötige offenbar etwas Nachhilfe.
Eine meiner PageControl-Anwendungen mit etlichen TabSheets braucht noch weitere.
Bevor die Main-Unit mit den VCL-Ereignisbezogenen Funktionen in den 5-stelligen
Befehlszeilen-Bereich wächst, wollte ich die TabSheets in einzelne Forms aufsplitten.
Wenn ich die modal anzeige, bin ich festgenagelt mit Bewegung und Steuerung.
Anzeigen mit Show klappt eigentlich gut, inkl. Bewegung (WM_MOVE), aber die ganze Konstruktion ist irgendwie labil.
Z.B. verlieren Arrays mit Komponeneten ihre Inhalte, ich muss sie immer wieder bei OnShow neu laden.
Verrenne ich mich da gerade in einen Dschungel ?
Sollte jemand mein Problem verstehen, wäre ich um jeden Hinweis dankbar.
(Auch 'mach nicht so einen Blödsinn, denn...')

Danke schonmal
Reinhold

Uwe Raabe 3. Mai 2024 13:26

AW: TPageControl - Alternative ?
 
Zitat:

Zitat von Graf Gustav (Beitrag 1536353)
Sollte jemand mein Problem verstehen

An diesem Part gibt es vermutlich noch Luft nach oben.

Delphi.Narium 3. Mai 2024 13:44

AW: TPageControl - Alternative ?
 
Alles was momentan auf einem Tab liegt in 'nen eigene Frame packen, einschließlich der Logik (soweit möglich und erforderlich).

Die Frames bekommen dann 'nen Tab als Parent. Damit kannst Du sehr viel Code in unterschiedliche Units auslagern, hast aber nicht die mit dem ShowModal verbundenen Einschränkungen.

haentschman 3. Mai 2024 13:45

AW: TPageControl - Alternative ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöle...8-)
Zitat:

Eine meiner PageControl-Anwendungen mit etlichen TabSheets braucht noch weitere.
Versuch das zu verstehen was du möchtest. Ich gehe davon aus, wegen der Menge der Reiter, ist es unübersichtlich sowohl im Code als auch in der Oberfläche...:zwinker:

Meine Lösung als Idee:
1. Bild
2. Code zum Aufruf des Frames oder Form
Delphi-Quellcode:
procedure TfoPreferences.tvContentChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
var
  Data: PSEAMTreeDataObject;
begin
  Data := Sender.GetNodeData(Node);
  if Assigned(Data) then
  begin
    case Data^.AbsolutIndex of
      10000, 10100, 10400, 11000, 11210, 11300, 11500, 11600:
      begin
        pgcContent.ActivePage:= tsClear;
      end;
      10350:
      begin
        pgcContent.ActivePage:= tsMisc;
      end;
      10700:
      begin
        pgcContent.ActivePage:= tsContent;
        actSecurityManager.Execute;
      end;
      10710:
      begin
        pgcContent.ActivePage:= tsContent;
        actDatabaseLock.Execute;
      end;
    ...
end;
...
procedure TfoPreferences.actDatabaseLockExecute(Sender: TObject);
var
  Form: TForm;
begin
  FPreferences.PreferencesCommon.FormDictionary.TryGetValue('frDatabaseLock', Form);
  if not Assigned(Form) then
  begin
    Form := TfrDatabaseLock.Create(Application, FPreferences);
    FPreferences.PreferencesCommon.FormDictionary.Add('frDatabaseLock', Form);
  end;
  SetContentForm(Form, pnlContent, Sender, Format(conTextContentSecurity, [TAction(Sender).Caption]));
  Form.Show;
end;

Graf Gustav 3. Mai 2024 14:55

AW: TPageControl - Alternative ?
 
Phantastisch.
Danke euch beiden, dass ihr so schnell mein Problem kapiert habt.
TFrame ist die Lösung, damit kann ich wirklich alles hinkriegen.
(Seit wann gibt's die eigentlich? :shock: Bin erst seit Delphi 1 dabei :stupid:)

Delphi.Narium 3. Mai 2024 15:10

AW: TPageControl - Alternative ?
 
Zitat:

Zitat von Graf Gustav (Beitrag 1536366)
(Seit wann gibt's die eigentlich? :shock: Bin erst seit Delphi 1 dabei :stupid:)

Gab's schon bei Turbo&Borland-Pascal 7, also "lange" vor Delphi 1. ;-)

Graf Gustav 3. Mai 2024 15:22

AW: TPageControl - Alternative ?
 
echte Lücke bei mir - trotz dBase, Clipper und VO :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr.

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