Hallo DPler,
ich wollte mit Hilfe einer Anleitung (
http://www.delphifeeds.com/go/s/67441) die Titlezeile eines Fensters manipulieren. Soweit funktioniert auch alles
jedoch wenn ich die Eigenschaft BorderStyle des Fensters auf bsDialog stelle erhalte ich eine Bereichsüberprüfungsmeldung.
Delphi-Quellcode:
procedure TfrmMenue.FormCreate(Sender: TObject);
var
R: TRect;
begin
if DwmCompositionEnabled
then begin
//init
SetRectEmpty(R);
AdjustWindowRect(R, GetWindowLong(
Handle, GWL_STYLE), False);
FWndFrameSize := R.Right;
GlassFrame.Top := -R.Top;
GlassFrame.Enabled := True;
SetWindowPos(
Handle, 0, Left, Top, Width, Height, SWP_FRAMECHANGED);
DoubleBuffered := True;
//Höhe und Position der Groupbox anpassen
grbMenue.Top := GetSystemMetrics(SM_CYEDGE)+GetSystemMetrics(SM_CYCAPTION)+8;
grbMenue.Height := ClientHeight - grbMenue.Top - GetSystemMetrics(SM_CYEDGE)-StatusBar1.Height;
end;
{if}
end;
Das Problem ist das GetWindowLong() im Falle von bsDialog einen negativen Wert ausgibt die Prozedur AdjustWindowRect jedoch nur positive (Cardinal) Werte akzeptiert.
Ich bin gerade etwas ratlos was ich tun muss das ich die Eigenschaft 'bsDialog' einstellen kann, ohne eine Fehlermeldung.