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 Form ohne SystemMenuBar (https://www.delphipraxis.net/154631-form-ohne-systemmenubar.html)

DarkItachi 18. Sep 2010 18:52


Form ohne SystemMenuBar
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöchen!

Ich habe es früher mal geschafft aber ich weiß nicht mehr wie und die Projectdateien habe ich leider auch nicht mehr..

Aber das Fenster kann man auf den Screenshot sehen!!
Weiß jemand, wie man das anstellen könnt? Ich weiß es nicht mehr :cry:

Aber der Rahmen ist mir besonders wichtig..
Eigentlich müsste man nur die TitleBar ausblenden und den Rahmen oben noch behalten...
Ich glaube so habe ich das früher auch gemacht...

Hat jemand eine Idee?

Thx IM VORHINEIN :-D

Satty67 18. Sep 2010 18:57

AW: Form ohne SystemMenuBar
 
Ich hab's mal ungetestet aus einem alten Projekt ausgeschnitten:
Delphi-Quellcode:
SetwindowLong(Handle,GWL_Style,GetwindowLong(handle, GWL_style) and not Ws_caption);
.
Müsste fast das sein, was du suchst?

DarkItachi 18. Sep 2010 19:45

AW: Form ohne SystemMenuBar
 
Leider nicht...
Das ist ja als wenn ich einfach Borderstyle auf bsNone schalte...
Aber ich will ja den Rahmen beibehalten..
Aber trotzdem nach wie vor thx :-D

Bernerbaer 18. Sep 2010 20:17

AW: Form ohne SystemMenuBar
 
Siehe hier

Björn Ole 18. Sep 2010 20:18

AW: Form ohne SystemMenuBar
 
Oder hier

DarkItachi 18. Sep 2010 21:55

AW: Form ohne SystemMenuBar
 
Ganz dolles Danke! :-D

Ich stelle es nochmal rein, falls jemand anderes etwas Funktionierendes sucht:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    // ...
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure CreateParams(var Params: TCreateParams); override;
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
  end;

// ...

implementation

// ...

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := WS_POPUP or WS_THICKFRAME;
  Params.ExStyle := WS_EX_TOOLWINDOW;
end;

procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
  inherited;
  Message.Result := htClient;
end;

Satty67 18. Sep 2010 22:06

AW: Form ohne SystemMenuBar
 
...und wo ist im Ergebnis der Unterschied zu
Delphi-Quellcode:
SetwindowLong(Handle,GWL_Style,GetwindowLong(handle, GWL_style) and not Ws_caption);
.
:gruebel:
Im OI halt vorher BorderStyle = bsDialog einstellen und sieht nicht anders aus oder doch? Egal, wenn es jetzt passt ist ja gut.

DarkItachi 18. Sep 2010 22:32

AW: Form ohne SystemMenuBar
 
Liste der Anhänge anzeigen (Anzahl: 1)
Naja... Deine Methode erzeugt nicht den Aero Rahmen:

Aber trotzdem vielen Dank.. Diese Methode hatte ich früher nicht, das weiß ich genau..
Aber sie funktioniert halt :-D

Satty67 18. Sep 2010 23:07

AW: Form ohne SystemMenuBar
 
Ach OK, in XP sehe ich den Unterschied einfach nur nicht.

Danke, dass Du Dir die Mühe gemacht hast mir den Unterschied zu zeigen (werde die andere Methode in meine CodeLib aufnehmen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 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 by Thomas Breitkreuz