Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: GetSystemMetrics - Rahmen eines Fensters

  Alt 31. Mär 2012, 15:10
Damit kann man natürlich keine Fenstergröße ändern, wie man im MSDN nachlesen kann.
Zitat:
Calculates the required size of the window rectangle, based on the desired size of the client rectangle. The window rectangle can then be passed to the CreateWindowEx function to create a window whose client area is the desired size.
Aber es macht genau das, was du willst.

Aus der Fenstergröße die Größe des Clientbereichs berechnen.

Der umgekehrte Weg ist auch einfach.
- aktuelle Fenstergröße nehmen,
- das ClientRect berechnen lassen
- die Different von WindowsRect und ClientRect ergibt das Offset, welches man dazurechnen muß, wenn man aus dem ClientRect das WindowRect berechnen will.



Ansonsten mußt du aufpassen, welchen Fenstertyp man vor sich hat, wenn man es unbedingt selber berechnen will, wie z.B. ob ScrollBars sichtbar sind und ob es einen Offset (inneren Abstand) für den Clientberech gibt.
- unterschiedliche Fenstertypen haben unterschiedliche Rahmen (schau dir mal den BorderStyle deiner TForms an)
- Scrollleisten verkleinern auch den Klientbereich
- usw.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (31. Mär 2012 um 15:14 Uhr)
  Mit Zitat antworten Zitat