Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Form Größe zur Laufzeit ändern klappt nicht richtig

  Alt 28. Jan 2020, 19:03
Zitat:
ich glaube nicht, dass das einen Unterschied bewirken würde ob ich
nun ClientHeight oder Height nehme.
Wenn man aktuelle Höhe minus Höhe der entfernten Komponente nimmt und es der selben Höhen-Eigenschaft zurückübergibt, dann ist es egal.
Selbes = Client-Bereich (Innenmaße) oder Fenster-Bereich (Außenmaße)



Bei Höhe ausrechnen (ohne aktuelle Höhe zu beachten) und irgendeiner Höhen-Eigenschaft zuweisen, das geht schnell schief.
Hier besser ClientHight/ClientRect verwenden, anstatt und Hight/BoundRect, denn bei Letzeterem sind auch TitelLeiste und Rahmen drin, die mit jeder Windowsverions andere Dimensionen hatten.
PS: Das ist auch der Grund, warum Delphi inzwischen ClientHeight/ClientWidth bei den TForm in den DFMs speichert, weil es früher echt blöd war, wenn das Programm in einer Windowsversion, bzw. mit einer gewissen Benutzereinstellung des Desktops kompilert wurde, später und woanders plötzlich der Inhalt des Fensters schnell nicht mehr passte.

Im Windows 10 besonders gut zu bemerkten, denn der FormDesigner arbeitet immernoch mit dem Windows-7-Style und zur Laufzeit hat das Fenster nun außen eine andere Größe, aber innen stimmt es. (falls man keine alte DFM mit Width/Heigt lädt und vorher noch nicht neu gespeichert hat)
Oder DevExpress-Styles und MDI ... eingebettet alter Style und ausgebettet/freifliegend der Neue.
$2B or not $2B

Geändert von himitsu (28. Jan 2020 um 19:08 Uhr)
  Mit Zitat antworten Zitat