AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SHBrowseForFolder falsche Größe

Ein Thema von gmc616 · begonnen am 26. Sep 2014 · letzter Beitrag vom 26. Sep 2014
Antwort Antwort
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

SHBrowseForFolder falsche Größe

  Alt 26. Sep 2014, 10:01
Hallo Delphianer,

ich versuche die Größe des SHBrowseForFolder zu anzupassen bzw. zu zentrieren und ermittle im BrowseCallbackProc -> BFFM_INITIALIZED mit Hilfe von GetWindowRect die aktuelle Größe des Dialogs.

Allerdings liefert mir GetWindowRect falsche Werte in Rect.Right und Rect.Bottom zurück.
Ich habe einen Screenshot gemacht und mit Hilfe von MS-Paint "ausgemessen". Right und Bottom sind falsch, Left und Top stimmen.

Right und Bottom brauche ich aber um die Breite und Höhe ermitteln zu kömmen, um letztendlich den Dialog ins Zentrum zu kriegen.
Das Ganze hat so lang korrekt funktioniert, so lang ich die (Standard-) Größe des Dialogs NICHT verändert habe.
Jetzt habe ich per Maus den Dialog größer gezogen (in dem winzigen Dialog wird man ja blöde, wenn sich durch Verzeichnisse klickt ) und seit dem funktioniert das Zentrieren nicht mehr, weil GetWindowRect falsche Werte liefert.

Wieso? Wo könnte ich anfangen das Problem zu suchen?

D2009 unter Win2003
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#2

AW: SHBrowseForFolder falsche Größe

  Alt 26. Sep 2014, 13:04
Vermutung: In BFFM_INITIALIZED wird der Dialog noch initialisiert und es steht noch nicht alles fest.

Wie im TForm, wo du im Create/OnCreate machen kannst was du willst, da die "automatische" Größe/Position erst im Show/ShowModal bestimmt wird.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: SHBrowseForFolder falsche Größe

  Alt 26. Sep 2014, 14:21
Hmm .. die Vermutung könnte wohl richtig sein.

Allerdings interpretiere ich BFFM_INITIALIZED als bereits erledigt.
Auch das MSDN sagt: BFFM_INITIALIZED -> The dialog box has finished initializing.

Was allerdings nicht aussagt, dass deine Vermutung nicht doch korrekt ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#4

AW: SHBrowseForFolder falsche Größe

  Alt 26. Sep 2014, 15:40
Nja, in Delphi ist die TForm nach dem Create auch initialisiert, aber beim Show wird halt noch die Ausrichtung vorgenommen.

Vielleicht bekommst du ja noch ein WM_SHOWWINDOW/WM_SIZE/WM_MOVE-Ereignis, oder irgendwie sowas, auf das du reagieren könntest?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 07:34 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