Einzelnen Beitrag anzeigen

lucy

Registriert seit: 25. Okt 2017
84 Beiträge
 
Delphi XE7 Starter
 
#1

Navigation Form1

  Alt 3. Apr 2025, 12:51
Hallo,

siehe Bild 1! ich möchte gerne, wenn ich in Form2 auf BorderIcon biMaximize clicke, dass Form 3, Form 4 und Form 5 ausgeblendet werden
und Form 2 in voller Größe dargestellt wird.

Wird wieder auf biMinimize geclickt soll wieder alles in die ursprungs Ansicht zurück (Bild 1).

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

uses Unit2, Unit3, Unit4, Unit5;



procedure TForm1.FormCreate(Sender: TObject);
begin
  Panel1.SetBounds(0, 0, ClientWidth div 2, ClientHeight div 2);
  Panel2.SetBounds(ClientWidth div 2, 0, ClientWidth div 2, ClientHeight div 2);
  Panel3.SetBounds(0, ClientHeight div 2, ClientWidth div 2, ClientHeight div 2);
  Panel4.SetBounds(ClientWidth div 2, ClientHeight div 2, ClientWidth div 2, ClientHeight div 2);

  // Form2 in Panel1 einbetten
  Form2 := TForm2.Create(Self);
  //Form2.BorderStyle := bsNone; // Kein Rahmen für nahtlose Einbettung
  Form2.Parent := Panel1;
  Form2.Align := alClient;
  Form2.Show;

  // Form3 in Panel2 einbetten
  Form3 := TForm3.Create(Self);
  //Form3.BorderStyle := bsNone;
  Form3.Parent := Panel2;
  Form3.Align := alClient;
  Form3.Show;

  // Form4 in Panel3 einbetten
  Form4 := TForm4.Create(Self);
 // Form4.BorderStyle := bsNone;
  Form4.Parent := Panel3;
  Form4.Align := alClient;
  Form4.Show;

  // Form5 in Panel4 einbetten
  Form5 := TForm5.Create(Self);
  //Form5.BorderStyle := bsNone;
  Form5.Parent := Panel4;
  Form5.Align := alClient;
  Form5.Show;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
var
  PanelWidth, PanelHeight: Integer;
begin
  PanelWidth := ClientWidth div 2; // Halbe Breite des Formulars
  PanelHeight := ClientHeight div 2; // Halbe Höhe des Formulars

  // SetBounds(X, Y, Breite, Höhe)
  Panel1.SetBounds(0, 0, PanelWidth, PanelHeight); // Oben links
  Panel2.SetBounds(PanelWidth, 0, PanelWidth, PanelHeight); // Oben rechts
  Panel3.SetBounds(0, PanelHeight, PanelWidth, PanelHeight); // Unten links
  Panel4.SetBounds(PanelWidth, PanelHeight, PanelWidth, PanelHeight); // Unten rechts end;

end;
end;

end.
Miniaturansicht angehängter Grafiken
bild1.png  
  Mit Zitat antworten Zitat