Höhe und Breite von TGroupBox korrekt angeben

Rund um die LCL und andere Komponenten
Antworten
Kay
Beiträge: 134
Registriert: So 14. Nov 2010, 15:17

Höhe und Breite von TGroupBox korrekt angeben

Beitrag von Kay »

Hallo,

ich habe ein Problem zu verstehen, wie die TGroupBox-Komponente eingesetzt wird oder genauer gesagt, wie die verschiedenen Angaben für Höhe und Breite gebildet werden.

Also, ich habe eine GroupBox auf meinem Formular platziert und in dieser ein Label sowie ein Edit zusammengefasst:

Code: Alles auswählen

object GroupBox1: TGroupBox
  Left = 10
  Height = 150
  Top = 10
  Width = 200
  Caption = 'GroupBox1'
  ClientHeight = 132
  ClientWidth = 196
  TabOrder = 0
  object Label1: TLabel
    Left = 10
    Height = 14
    Top = 10
    Width = 32
    Caption = 'Label1'
    ParentColor = False
  end
  object Edit1: TEdit
    Left = 50
    Height = 21
    Top = 10
    Width = 80
    TabOrder = 0
    Text = 'Edit1'
  end
end
Als erstes würde mich interessieren, wie die Dimension der ClientArea zustande kommt, d.h. 4 Pixel weniger für die Breite und ganze 18 Pixel weniger für die Höhe?
Erst dachte ich, dass die 18 Pixel für die Höhe für die Caption benötigt werden. Wenn ich den Text allerdings lösche, verändert sich die ClientHeight gar nicht.
Und dann irritiert mich die Platzierung des Labels. Die von mir angegebenen 10 Pixel für die Top-Eigenschaft müssten sich ja eigentlich auf den Abstand vom oberen Rand des Client-Bereiches beziehen. Wenn die Caption-Eiggenschaft der GroupBox nicht zur ClientArea zählt, dann müsste sich demnach ein Abstand von 10 Pixeln zwischen Aufschrift und Label befinden. Das ist aber nicht der Fall, sondern der Text "GroupBox1" wird direkt an die obere Kante des Labels geheftet.

Auch wenn die Fragen vielleicht etwas banal sind, wäre es trotzdem nett, wenn mir jemand kurz die Funktionsweise erläutern könnte. Die Doku ist dazu leider recht dürftig.

Vielen Dank schonmal,
Kay
Zuletzt geändert von Lori am Do 14. Nov 2013, 13:24, insgesamt 1-mal geändert.
Grund: Bitte den richtigen Highlighter nutzen!

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Höhe und Breite von TGroupBox korrekt angeben

Beitrag von m.fuchs »

Kay hat geschrieben:Als erstes würde mich interessieren, wie die Dimension der ClientArea zustande kommt, d.h. 4 Pixel weniger für die Breite und ganze 18 Pixel weniger für die Höhe?
Erst dachte ich, dass die 18 Pixel für die Höhe für die Caption benötigt werden. Wenn ich den Text allerdings lösche, verändert sich die ClientHeight gar nicht.
Die vier Pixel kommen vom Rand. Der verbrät auf jeder Seite zwei. Gut zu sehen, wenn man das Ganze mal vergrößert betrachtet:

Bild

Bleiben vertikal noch vierzehn übrig. Und die kommen in der Tat von der Caption. Auch wenn diese nur einen leeren String enthält, wiird der Platz reserviert und von der ClientHeight abgezogen.
Kay hat geschrieben:Und dann irritiert mich die Platzierung des Labels. Die von mir angegebenen 10 Pixel für die Top-Eigenschaft müssten sich ja eigentlich auf den Abstand vom oberen Rand des Client-Bereiches beziehen. Wenn die Caption-Eiggenschaft der GroupBox nicht zur ClientArea zählt, dann müsste sich demnach ein Abstand von 10 Pixeln zwischen Aufschrift und Label befinden. Das ist aber nicht der Fall, sondern der Text "GroupBox1" wird direkt an die obere Kante des Labels geheftet.
Kann ich nicht bestätigen:

Bild
Zuletzt geändert von m.fuchs am Mi 13. Nov 2013, 23:59, insgesamt 2-mal geändert.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
theo
Beiträge: 10907
Registriert: Mo 11. Sep 2006, 19:01

Re: Höhe und Breite von TGroupBox korrekt angeben

Beitrag von theo »

@Kay: Ich kann deine Beobachtungen nicht nachvollziehen auf Lazarus 1.3 r43392M FPC 2.7.1 x86_64-linux-gtk 2

Antworten