![]() |
Re: Form mit bsToolWindow-BorderStyle und Height := 0
Yup, I know. tHx für den Link, auf der Seite war ich vorher noch nicht. Hab das grad mal bisschen überflogen, die Frage die sich dabei jetzt aber stellt ist: Wie setz ich das in Delphi um und krieg da auch die Kompos drauf, die ich haben will? Bisher war mir "nonVCL" ein Buch mit sieben Siegeln und hab's vermieden, wo ich konnte. ;)
Grüße, Mario |
Re: Form mit bsToolWindow-BorderStyle und Height := 0
Notfalls könntest du ja noch mir Regions den unteren Teil des Fensters abschneiden.
z.B.
Delphi-Quellcode:
Procedure TForm1.FormCreate(Sender: TObject);
Begin SetWindowRgn(Handle, CreateRectRgn(0, 0, Width, 22), True); End; |
Re: Form mit bsToolWindow-BorderStyle und Height := 0
Hmm, scheint aber auch nicht zu funktionieren, wenn man diese Klasse in CreateWindowsEx benutzt...
LUUUCKIEEEE!!! |
Re: Form mit bsToolWindow-BorderStyle und Height := 0
Zitat:
|
Re: Form mit bsToolWindow-BorderStyle und Height := 0
Hehe, yo, mit SetWindowRgn (Handle, CreateRectRgn (0, 0, Width, GetSystemMetrics (SM_CYCAPTION)), True) schneidet er's genau bis unter die Titelleiste ab, aber es sieht dann auch entsprechend abgeschnitten aus. :zwinker:
Bild (mit SetWindowRgn): ![]() |
Re: Form mit bsToolWindow-BorderStyle und Height := 0
So, habe damit ein wenig herumgespielt un habe ein Lösung entdeckt.
Deklariere einfach einen WM_WINDOWPOSCHANGING handler und mache dort nichts. Dann kannst du eine beliebige Höhe setzen. Frag mich bitte nicht warum das so funktioniert....
Delphi-Quellcode:
private
{ Private declarations } procedure PosChange(var Msg: TWmWindowPosChanging); message WM_WINDOWPOSCHANGING; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Height := GetSystemMetrics(SM_CYCAPTION) // + - dy ???; end; procedure TForm1.PosChange (var Msg: TWmWindowPosChanging); begin end; |
Re: Form mit bsToolWindow-BorderStyle und Height := 0
Zitat:
Ich kann dir sagen, warum: Weil dann nicht überprüft wird, ob das Fenster nicht die Mindestgröße unterschreitet. P.S: Besser wär so:
Delphi-Quellcode:
procedure TForm1.WMWindowPosChanging(var Message: TWMWindowPosChanging);
begin if BorderStyle <> bsToolWindow then inherited; end; |
Re: Form mit bsToolWindow-BorderStyle und Height := 0
Zitat:
GetSystemMetrics(SM_CYCAPTION) gesetzt wird, sieht man noch einen Teil der Form (etwa 2 Pixel) Wenn ich den klassischen Style von Windows aktivert habe, dann stimmts glaub, wenn ich mich recht erinnere. |
Re: Form mit bsToolWindow-BorderStyle und Height := 0
Delphi-Quellcode:
wär doch richtig, oder?
ClientHeight := 0;
|
Re: Form mit bsToolWindow-BorderStyle und Height := 0
Zitat:
resp. abgeschnitten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 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