![]() |
Re: Maximierung eines Programms nur auf ein Teil beschränken
Schau dir die Eigenschaften Anchors und ALign der jeweiligen Komponenten an. Dies sollte helfen. ;)
|
Re: Maximierung eines Programms nur auf ein Teil beschränken
Ahh danke! @ neolithos: OK, danke für dein Geduld!
|
Re: Maximierung eines Programms nur auf ein Teil beschränken
Jetzt sag bitte nicht es ging Dir die ganze Zeit nur um die Controls?
|
Re: Maximierung eines Programms nur auf ein Teil beschränken
Nein quatsch! Ich wollte dich nur ein bisschen quälen! Hehe! Nein Scherz! Ich hab wirklich nicht gemerkt, dass es auch so geht!
|
Re: Maximierung eines Programms nur auf ein Teil beschränken
*heul*
Schön aneinander vorbeigeredet! :pale: Aber ich hoffe du hast was ich gelernt! |
Re: Maximierung eines Programms nur auf ein Teil beschränken
Liste der Anhänge anzeigen (Anzahl: 1)
Einfach auf File\New\Application klicken...
Dann den Code von Unit 1 damit ersetzen:
Delphi-Quellcode:
Unit Unit1;
Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, CommCtrl {$IFDEF CLR}, System.ComponentModel, Borland.Vcl.ExtCtrls {$ELSE},ExtCtrls{$ENDIF}; Type TPrevSettings = Record pTop: Integer; pLeft: Integer; pHeight: Integer; pWidth: Integer; pAlign: TAlign; End; Type TForm1 = Class(TForm) Panel1: TPanel; Label1: TLabel; Edit1: TEdit; Panel2: TPanel; Memo1: TMemo; private PrevSettings: TPrevSettings; Procedure WMSysCommand(Var Message: TWMSysCommand); message WM_SYSCOMMAND; Procedure doMaximize(Const Maximize: Boolean); public End; Var Form1: TForm1; Implementation {$R *.dfm} Procedure TForm1.doMaximize(Const Maximize: Boolean); Begin If Maximize Then Begin WITH PrevSettings do Begin pTop := Top; pLeft := Left; pHeight := Height; pWidth := Width; pAlign := Align; End; Constraints.MaxHeight := 150; Align := alTop; WindowState := wsMaximized; End Else Begin WindowState := wsNormal; Constraints.MaxHeight := 0; WITH PrevSettings do Begin Align := pAlign; Top := pTop; Left := pLeft; Height := pHeight; Width := pWidth; End; End; End; Procedure TForm1.WMSysCommand(Var Message: TWMSysCommand); Begin Case Message.CmdType Of SC_MAXIMIZE, 61490: doMaximize(True); SC_RESTORE, 61730: doMaximize(False); Else Inherited; End; End; End. Erst jetzt können die Controls drauf (möglichst auf aligned Panels packen). Wichtig ist es die Einstellungen der Form zu sichern (PrevSettings), da durch das alTop alles verändert wird. Ich habe auch noch eine Echse angehängt. Nachtrag: Da war ich wohl etwas wortkarg :mrgreen: Also ... CmdType SC_MAXIMIZE -> Klick auf den Max Button 61490 -> Doppelklick auf Titelleiste, wenn das Form im WindowState = wsNormal ist SC_RESTORE -> Klick auf den Restore Button 61490 -> Doppelklick auf Titelleiste, wenn das Form im WindowState = wsMaximized ist Der Code macht eigentlich nix weiter, als die Einstellungen vor Maximize zu sichern, und vor Restore wieder zu setzen. Sorry für die .Net-Echse, aber ich hatte keine Lust auch noch D7 aufzumachen. Durch die Compiler-Direktive in der Uses müsste es auch unter Win32 laufen. :gruebel: |
Re: Maximierung eines Programms nur auf ein Teil beschränken
Und für die Edits und Buttons kuck dir mal die Anchors-Eigenschaften.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz