Delphi-PRAXiS
Seite 1 von 2  1 2      

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 bsSingle BorderStyle von Form1 ohne Maximieren ? (https://www.delphipraxis.net/167483-bssingle-borderstyle-von-form1-ohne-maximieren.html)

Premaider 1. Apr 2012 13:12

bsSingle BorderStyle von Form1 ohne Maximieren ?
 
Hey Leute ich möchte meinem Programm den BorderStyle bsSingle verpassen allerdings ohne Maximieren, also oben rechts nur minimieren und schließen. Wie mache ich das ?

mkinzler 1. Apr 2012 13:17

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?
 
Den Eintrag aus BorderIcons rausnehmen

Premaider 1. Apr 2012 13:20

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?
 
Dann ist es aber ja nur grau. ich möchte es wenn möglich ganz weghaben

Popov 1. Apr 2012 13:37

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?
 
Mit Hilfe der Api wirst du es wahrscheinlich hinkriegen.

Bummi 1. Apr 2012 13:44

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?
 
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type

  TForm=Class(Forms.TForm)
       public
       procedure GetBorderIconStyles(var Style, ExStyle: Cardinal); override;
  End;
  TForm2 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}


{ TForm }

procedure TForm.GetBorderIconStyles(var Style, ExStyle: Cardinal);
begin
  inherited;
  Style := Style and not (WS_MINIMIZEBOX or WS_MaximizeBOX)
end;

end.

himitsu 1. Apr 2012 13:50

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?
 
Nein, was soll man mit der API da hinbekommen? (außer man zeichnet die Titelleiste komplett selber)

Das ist ein Standardverhalten von Windows.
Wenn der Minimierenbutton vorhanden ist, dann auch der Maximimieren (wenn auch nur inaktiv).
Ohne den Minimizebutton ist auch der Maximize weg.

Bummi 1. Apr 2012 14:04

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?
 
da habe ich oben doch gegen das KISS-Prinzip verstossen, besser so
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type

  TForm2 = class(TForm)
  private
    { Private-Deklarationen }

  public
  procedure GetBorderIconStyles(var Style, ExStyle: Cardinal); override;
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.GetBorderIconStyles(var Style, ExStyle: Cardinal);
begin
  inherited;
  Style := Style and not (WS_MINIMIZEBOX or WS_MaximizeBOX)
end;

end.

Premaider 1. Apr 2012 14:04

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?
 
Zitat:

Zitat von Bummi (Beitrag 1159671)
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type

  TForm=Class(Forms.TForm)
       public
       procedure GetBorderIconStyles(var Style, ExStyle: Cardinal); override;
  End;
  TForm2 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}


{ TForm }

procedure TForm.GetBorderIconStyles(var Style, ExStyle: Cardinal);
begin
  inherited;
  Style := Style and not (WS_MINIMIZEBOX or WS_MaximizeBOX)
end;

end.

Habe eine neue Unit erstellt und das ganze von dir eingefügt. Folgende Fehlermeldungen:
Delphi-Quellcode:
[Fehler] Unit2.pas(13): Methode 'GetBorderIconStyles' nicht in Basisklasse gefunden
[Warnung] Unit2.pas(27): Datei nicht gefunden: 'Unit2.dfm'
[Fataler Fehler] Project1.dpr(6): Verwendete Unit 'Unit2.pas' kann nicht compiliert werden

Popov 1. Apr 2012 14:42

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?
 
Premaider, was erwartest du jetzt mit deiner Frage? Selbst wenn der Tipp unter D7 funktionieren würde, das steht
Delphi-Quellcode:
and not (WS_MINIMIZEBOX or WS_MaximizeBOX)
. Also beides.

Hier das gleiche in grün:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  SetWindowLong(Handle, GWL_STYLE,
    GetWindowLong(Handle, GWL_STYLE)
    and not (WS_MINIMIZEBOX or WS_MAXIMIZEBOX));
end;
Kannst du experimentieren.

Ansonsten siehe Beitrag von himitsu.

Furtbichler 2. Apr 2012 07:06

AW: bsSingle BorderStyle von Form1 ohne Maximieren ?
 
Delphi-Quellcode:
BorderStyle := bsDialog
reicht nicht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz