[gelöst] Größe der Form bei wsMaximized und einem Menü

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
wennerer
Beiträge: 280
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon, Lazarus Stable 2.0.10 r63673M FPC 3.2.0
CPU-Target: x86_64-linux-gtk2

[gelöst] Größe der Form bei wsMaximized und einem Menü

Beitrag von wennerer »

Hallo,
ich habe folgendes unter Linux Mint festgestellt.
Erstelle ich eine Form mit wsMaximized und zeichne in den Canvas der Form ein Rechteck mit Canvas.Rectangle(0,0,Width,Height) so ist das Rechteck komplett zu sehen. Das bedeutet meine sich unten befindliche Symbolleiste wird verrechnet und die Form endet an der Leiste.
Füge ich der Form ein Menü hinzu wird die Titelleiste höher und das Rechteck verschwindet unten unter der Leiste. Bedeutet die neue Höhe der Titelleiste wird nicht berücksichtigt.
Kennt jemand eine Vorgehensweise das die Form mit einem Menü die optimale Größe annimmt?

Viele Grüße
Bernd

Code: Alles auswählen

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Menus;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
  private
    Menue     : TMainMenu;
    Testmenue : TMenuItem;
  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
 WindowState := wsMaximized;
 {
 Menue        := TMainMenu.Create(self);
 Testmenue := TMenuItem.Create(Self);
 Testmenue.Caption := 'Testmenü';
 Menu.Items.Add(Testmenue);
  }
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
 Canvas.Pen.Color := clRed;
 Canvas.Pen.Width := 5;
 Canvas.Rectangle(0,0,Width,Height);
end;

end.
Dateianhänge
project1.zip
(126.56 KiB) 15-mal heruntergeladen
Zuletzt geändert von wennerer am Mo 22. Feb 2021, 21:22, insgesamt 1-mal geändert.

Michl
Beiträge: 2390
Registriert: Di 19. Jun 2012, 12:54

Re: Größe der Form bei wsMaximized und einem Menü

Beitrag von Michl »

Nimm dafür ClientWidth und ClientHeight.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

wennerer
Beiträge: 280
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon, Lazarus Stable 2.0.10 r63673M FPC 3.2.0
CPU-Target: x86_64-linux-gtk2

Re: Größe der Form bei wsMaximized und einem Menü

Beitrag von wennerer »

Vielen Dank,
das funktioniert!

Viele Grüße
Bernd

Antworten