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/)
-   -   Delphi Maximieren-Button in Form entfernen (https://www.delphipraxis.net/96013-maximieren-button-form-entfernen.html)

freak1988 17. Jul 2007 22:23


Maximieren-Button in Form entfernen
 
Wie kann ich bei einer Form den Maximieren-Button entfernen?

Luckie 17. Jul 2007 22:30

Re: Maximieren-Button in Form entfernen
 
Guck mal im OI: BroderIcons.

Matze 17. Jul 2007 22:34

Re: Maximieren-Button in Form entfernen
 
Da lässt sich der Button allerdings nur deaktivieren.
Da dies das Standardverhalten vieler Anwendungen ist, würde ich mich an deiner Stelle auch daran halten. Doch entfernen kannst du den Button bestimmt, indem du das Handle ermittelst und eine entsprechende Nachricht an dieses sendest.

Luckie 17. Jul 2007 22:38

Re: Maximieren-Button in Form entfernen
 
Nein, man muss den korrespondierenden Menüeintrag aus dem Systemmneü entfernen. Code kommt gleich.

Ok, ich behaupte jetzt das gegenteil. Entfernen geht doch nicht. ;)

Hawkeye219 17. Jul 2007 22:54

Re: Maximieren-Button in Form entfernen
 
Hallo,

es sollte genügen, die Methode CreateParams zu überschreiben:

Delphi-Quellcode:
procedure TForm1.CreateParams (var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style and (not WS_MAXIMIZEBOX);
end;
Ganz entfernen würde ich den Button nicht.

Gruß Hawkeye

freak1988 17. Jul 2007 23:00

Re: Maximieren-Button in Form entfernen
 
Vielen Dank, der OI hat mir geholfen

AlexII 12. Feb 2009 11:34

Re: Maximieren-Button in Form entfernen
 
Kann mir jemand sagen wie ich diesen Code in mein Programm einbauen soll? :gruebel:

Delphi-Quellcode:
procedure TForm1.CreateParams (var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style and (not WS_MAXIMIZEBOX);
end;
Nur einfügen geht nicht.

himitsu 12. Feb 2009 11:50

Re: Maximieren-Button in Form entfernen
 
du mußt die Original-Methode überschreiben :zwinker: (override)

AlexII 12. Feb 2009 12:12

Re: Maximieren-Button in Form entfernen
 
Hm... und das heißt? :gruebel:

Frankfurtoder 12. Feb 2009 12:19

Re: Maximieren-Button in Form entfernen
 
Zitat:

Zitat von AlexII
Hm... und das heißt? :gruebel:

Den Source aus dem Beitrag mit der Maus makieren, über die rechte Maustaste das Kontextmenü aufrufen, kopieren wählen. In dein Delphi den Editor aufrufen und dort die alte Prozedur überschreiben (über die rechte Maustaste im menü auf einfügen).

sirius 12. Feb 2009 12:27

Re: Maximieren-Button in Form entfernen
 
Zitat:

Zitat von Frankfurtoder
Den Source aus dem Beitrag mit der Maus makieren, über die rechte Maustaste das Kontextmenü aufrufen, kopieren wählen. In dein Delphi den Editor aufrufen und dort die alte Prozedur überschreiben (über die rechte Maustaste im menü auf einfügen).

:wall: War das jetzt Ironie oder Echt?

Delphi-Quellcode:
type TForm1=class(TForm)
      ...
      protected
        procedure CreateParams(...); override;
     end;
Das bringt aber nix anderes, als was du im OI schon gemacht hast.

Evtl. hilft dir noch Borderstyle weiter.

DeddyH 12. Feb 2009 12:28

Re: Maximieren-Button in Form entfernen
 
Mit BorderStyle auf z.B. bsDialog entfernst Du zwar den Maximieren- aber gleichzeitig auch den Minimieren-Button.

himitsu 12. Feb 2009 12:28

Re: Maximieren-Button in Form entfernen
 
Delphi-Quellcode:
type
  TWinControl = class(TControl)
  protected
    ...
    procedure CreateParams(var Params: TCreateParams); virtual;
    ...
  end;

  TCustomForm = class(TScrollingWinControl)
  protected
    ...
    procedure CreateParams(var Params: TCreateParams); override;
    ...
  end;

  // folgendes mußt du jetzt machen (übersieh das protected aber nicht! )
  TForm1 = class(TScrollingWinControl)
  protected
    ...
    procedure CreateParams(var Params: TCreateParams); override;
    ...
  end;
in TWinControl ist CreateParams als Virtual definiert, welches von TCustomForm schonmal überschrieben wurde ... tja und nun überschreibst du es nochmal in deiner Form (also der davon abgeleiteten Klasse)

[edit] weo kommen den jetzt plötzlicvh die ganzen Beiträge her? :shock:

sirius 12. Feb 2009 12:30

Re: Maximieren-Button in Form entfernen
 
Zitat:

Zitat von DeddyH
Mit BorderStyle auf z.B. bsDialog entfernst Du zwar den Maximieren- aber gleichzeitig auch den Minimieren-Button.

Ich weis, was passiert. Aber vielleicht war es ja auch das, was der OP sucht. Hat sich nur falsch ausgedrückt. Passiert ja nicht gerade selten.

DeddyH 12. Feb 2009 12:32

Re: Maximieren-Button in Form entfernen
 
Das sollte ja auch kein Angriff o.ä. sein, sondern nur ein Hinweis. Vielleicht war er ja sogar zielführend :zwinker:

sirius 12. Feb 2009 12:34

Re: Maximieren-Button in Form entfernen
 
Zitat:

Zitat von himitsu
[edit] weo kommen den jetzt plötzlicvh die ganzen Beiträge her? :shock:

Aus dem OFF.

AlexII 12. Feb 2009 12:38

Re: Maximieren-Button in Form entfernen
 
Mda..... jetzt verstehe ich garnix :pale:

Ok überlasse es der nächsten Generation... sie sollen es richten.

DeddyH 12. Feb 2009 12:42

Re: Maximieren-Button in Form entfernen
 
Was verstehst Du denn nicht?

sirius 12. Feb 2009 12:47

Re: Maximieren-Button in Form entfernen
 
Zitat:

Zitat von AlexII
Mda..... jetzt verstehe ich garnix :pale:

Ok überlasse es der nächsten Generation... sie sollen es richten.

Ekläre besser mal in einem neuen Thread, was du genau willst.

AlexII 12. Feb 2009 12:50

Re: Maximieren-Button in Form entfernen
 
Also ich hab das so gemacht:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style and (not WS_MAXIMIZEBOX);
end;
Und der Maximieren Button verschwindet trotzdem nicht :gruebel:

DeddyH 12. Feb 2009 12:53

Re: Maximieren-Button in Form entfernen
 
Der verschwindet auch nicht, sondern wird nur deaktiviert (also das Gleiche, was Du auch über die BorderIcons erreichst).

AlexII 12. Feb 2009 12:54

Re: Maximieren-Button in Form entfernen
 
Zitat:

Zitat von sirius
Ekläre besser mal in einem neuen Thread, was du genau willst.

Den Maximieren Button ausblenden.

sirius 12. Feb 2009 12:55

Re: Maximieren-Button in Form entfernen
 
(Auf Grund des roten Kastens alle Dopplungen entfernt)
(Auf Grund der zwei roten Kästen noch mehr entfernt :D )


Er wird ausgegraut.
Verschwinden tut er nicht. Das sieht das Konzept von MS nicht so einfach vor.
Wie ich schrieb: Du erreichst dasselbe wie mit Bordericons.
Was erwartest du denn?

AlexII 12. Feb 2009 12:55

Re: Maximieren-Button in Form entfernen
 
Zitat:

Zitat von DeddyH
Der verschwindet auch nicht, sondern wird nur deaktiviert (also das Gleiche, was Du auch über die BorderIcons erreichst).

Dieses Thema heißt aber "Maximieren-Button in Form entfernen" :gruebel:

Na gut :pale: Pardo...

DeddyH 12. Feb 2009 12:59

Re: Maximieren-Button in Form entfernen
 
Du hast folgende Möglichkeiten:
- Maximieren-Button deaktivieren, Minimieren-Button aktiv
- Minimieren-Button deaktivieren, Maximieren-Button aktiv
- beide deaktivieren -> sie werden entfernt

Wenn Letzteres für Dich OK ist, kannst Du das entweder über die BorderIcons oder über den BorderStyle erreichen.

himitsu 12. Feb 2009 13:02

Re: Maximieren-Button in Form entfernen
 
Delphi-Quellcode:
BorderIcons = [biSystemMenu]
so ist'er Weg ... ok, zwar samt dem MinimizeButton, aber er ist weg :roll:

Zitat:

Zitat von sirius
Das sieht das Konzept von MS nicht so einfach vor.

genausowenig wie den Help-Button zusammen mit einem Minimize- und/oder Maximize-Button :?

AlexII 12. Feb 2009 13:04

Re: Maximieren-Button in Form entfernen
 
Ja das mit dem BorderIcons kenne ich...
Das heißt also diesen Button bekomme ich net weg, also ganz weg und nicht nur deaktivieren.

DeddyH 12. Feb 2009 13:06

Re: Maximieren-Button in Form entfernen
 
Du bekommst ihn schon weg, aber nur in Kombination mit dem Minimieren-Button. Klingt blöd, ist aber so.

AlexII 12. Feb 2009 13:12

Re: Maximieren-Button in Form entfernen
 
Ne so nicht. Na gut, danke euch.

Reinhardtinho 12. Feb 2009 13:42

Re: Maximieren-Button in Form entfernen
 
Wenn du beide Buttons deaktivierst, kannst du auch den TJvCaptionButton nehmen (Jedi).

Allerdings wird dieser wahrscheinlich nicht an das Theme angepasst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 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