Einzelnen Beitrag anzeigen

Delfiano

Registriert seit: 13. Jul 2020
61 Beiträge
 
#13

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?

  Alt 6. Okt 2020, 10:24
Es gibt einen kleinen Trick mit Hilfsvariablen und FormResize.

BorderStyle:= bsSingle; // Damit die Grösse nicht verändert werden kann.

Variablen:
StartLeft, StartWidth, StartTop, StartHeight: integer;

in FormActivate:
StartLeft:=left;
StartTop:= top;
StartWidth:=width;
StartHeight:=height;

ausserdem für alle relevanten Inhalte doublebuffered:=true

Delphi-Quellcode:

procedure TForm1.FormResize(Sender: TObject);
begin

  WITH Form1 DO BEGIN
    doublebuffered:=true;
    if windowstate=wsmaximized then begin
      windowstate:= wsnormal;
      left:=StartLeft; Width:=StartWidth;
      top:=StartTop; height:=StartHeight;
      windowstate:= wsnormal;
    end;
    if width>startwidth then begin left:=StartLeft; Width:=startwidth; end;
    if height>startheight then begin top:=startTop; height:=startheight; end;

  END;

end;
Mag sein, dass es so etwas umständlich ist, aber so kann man minimieren und wenn man auf maximize
klickt, ändern sich das entsprechende Icon und vielleicht flackert das Programm minimal, z.B. die Position des Form-Capture.

Getestet mit Delphi 7 unter Windows 8.
  Mit Zitat antworten Zitat