AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Bereichsüberprüfung AdjustWindowRect BorderStyle bsDialog
Thema durchsuchen
Ansicht
Themen-Optionen

Bereichsüberprüfung AdjustWindowRect BorderStyle bsDialog

Ein Thema von TUX_der_Pinguin · begonnen am 23. Jun 2015 · letzter Beitrag vom 23. Jun 2015
Antwort Antwort
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#1

Bereichsüberprüfung AdjustWindowRect BorderStyle bsDialog

  Alt 23. Jun 2015, 10:52
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.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Bereichsüberprüfung AdjustWindowRect BorderStyle bsDialog

  Alt 23. Jun 2015, 12:18
Probiere mal testhalber die Funktion GetWindowLongPtr.
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Bereichsüberprüfung AdjustWindowRect BorderStyle bsDialog

  Alt 23. Jun 2015, 12:33
Probiere mal testhalber die Funktion GetWindowLongPtr.
GetWindowLongPtr(Handle, GWL_STYLE) gibt bei bsDialog auch einen negativen Wert aus (-2033713152).
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 Uhr.
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