TGridPanel — Kinder in einem Raster
Ein TPanel, das seine Kinder in Zeilen und Spalten setzt. Die Bänder — ColumnCollection und RowCollection — legen fest, wie breit bzw. hoch jede Spur ist: fest in Pixeln oder anteilig am verbleibenden Platz.
Unit: vega.extctrls · Basis: TPanel
→ Alle Steuerelemente · Klassenbaum · Guide: Komponenten
Vererbung
Kette: TComponent → TControl → TPanel → TGridPanel
Direkte Nachfahren: keine — diese Klasse wird nicht weiter abgeleitet.
Quelle: vega/extctrls.lyx
Verwendung
var gp: TGridPanel := new TGridPanel();
gp.SetBounds(8, 8, 400, 160);
gp.SetCellSpacing(4);
gp.SetParent(f);
// zwei Spalten: erste fest, zweite nimmt den Rest
gp.ColumnCollection.AddBand(BAND_ABSOLUTE, 120);
gp.ColumnCollection.AddBand(BAND_PERCENT, 100);
gp.RowCollection.AddBand(BAND_ABSOLUTE, 28);
gp.RowCollection.AddBand(BAND_ABSOLUTE, 28);
var l: TLabel := new TLabel("Name");
l.SetParent(gp as TControl);
gp.ControlCollection.SetPosition(l as TControl, 0, 0); // Spalte, Zeile
Wie beim TFlowPanel gilt: die Position der Kinder bestimmt das Panel, nicht das Kind.
Besonderheiten
- Drei Sammlungen, drei Aufgaben:
ColumnCollectionundRowCollectionbeschreiben die Spuren,ControlCollectionmerkt sich, welches Kind in welcher Zelle sitzt. CellSpacingist der Abstand zwischen den Zellen — der Rahmen des Panels selbst wird über die geerbtenBevel-Eigenschaften eingestellt.- Anteilige Spuren teilen sich, was übrig bleibt, nachdem die festen Spuren ihren Platz bekommen haben. Ein Raster ganz aus anteiligen Spuren verteilt gleichmäßig.
Eigenschaften
Alle Eigenschaften, auch die geerbten.
| Name | Typ | Bedeutung | Herkunft |
|---|---|---|---|
ComponentState | int64 | Zustand als Bitmaske (csLoading, csDestroying …) | TComponent |
ComponentStyle | int64 | Stil als Bitmaske; Vorgabe csInheritable | TComponent |
Name | pchar | Name der Komponente — für FindComponent und beim Laden aus LFM | TComponent |
OwnedComponents | TObjectList | Die Komponenten, die DIESER gehoeren. Delphis Components[]. Zeigerliste, keine Kopien: TObjectList hält int64-Adressen | TComponent |
Owner | TComponent | Wer diese Komponente wegraeumt. Nicht der Elternteil im Zeichenbaum — das ist bei TControl `Parent` | TComponent |
Tag | int64 | Freier Wert für eigene Zwecke; die Bibliothek fasst ihn nicht an | TComponent |
Alignment | int64 | Beschriftung mittig auf der Flaeche, wie in Delphi | TPanel |
BevelColor | TColor | Eigene Kantenfarbe. Durchsichtig heißt „Farben des Themes nehmen“ — hell oben links, dunkel unten rechts | TPanel |
BevelInner | int64 | Innere Kante: erhaben, vertieft oder keine | TPanel |
BevelOuter | int64 | Delphis Kanten: aussen, innen, Breite jeder Kante, Abstand dazwischen | TPanel |
BevelWidth | int64 | Breite der Kanten in Pixeln | TPanel |
Border | int64 | Der aeltere Vega-Rahmen. Er bleibt, weil bestehende Formulare ihn setzen; PB_RAISED/PB_SUNKEN sind dasselbe wie BevelOuter, PB_SINGLE ist eine Linie, die Delphi so nicht kennt | TPanel |
ParentBackground | bool | Hintergrund nicht selbst fuellen, sondern den des Elternteils nehmen | TPanel |
ShowAccelChar | bool | & im Text als Tastenkürzel deuten statt anzuzeigen | TPanel |
TextLayout | int64 | Senkrechte Ausrichtung der Beschriftung | TPanel |
CellSpacing | int64 | Abstand zwischen den Zellen | eigen |
ColumnCollection | TGridPanelBands | Die Spalten des Rasters | eigen |
ControlCollection | TGridPanelControls | Zuordnung Kind → Zelle | eigen |
RowCollection | TGridPanelBands | Die Zeilen des Rasters | eigen |
Methoden
Alle Methoden, auch die geerbten.
| Signatur | Zweck | Herkunft |
|---|---|---|
ClearState(bits: int64): void | Zustandsbits löschen | TComponent |
ComponentCount(): int64 | Anzahl der eigenen Komponenten | TComponent |
ComponentIndex(): int64 | Delphis ComponentIndex: der eigene Platz in der Liste des Besitzers | TComponent |
Components(index: int64): TComponent | Eigene Komponente an dieser Stelle | TComponent |
Destroy(): void | Raeumt die eigene Liste ab, aber NICHT die Einträge — welche Komponenten ihre Besitztuemer mitnehmen, entscheidet die Ableitung über DestroyComponents() | TComponent |
DestroyComponents(): void | Baut die Besitztuemer ab. Von hinten, weil jedes Destroy() sich selbst aus der Liste austraegt | TComponent |
FindComponent(name: pchar): TComponent | Sucht unter den EIGENEN Komponenten, eine Ebene tief — wie in Delphi | TComponent |
GetName(): pchar | Namen lesen | TComponent |
GetNamePath(): pchar | Der eigene Name. Delphi hängt bei Unterkomponenten den des Besitzers davor; Vega hat keine, also ist es der Name selbst | TComponent |
GetTag(): int64 | Tag lesen | TComponent |
HasState(bits: int64): bool | Sind diese Zustandsbits gesetzt | TComponent |
InitComponent(): void | Kein Konstruktor: lyxc vererbt Konstruktoren nicht, jede Ableitung ruft InitComponent() im eigenen Create() | TComponent |
InsertComponent(c: TComponent): void | Komponente in Besitz nehmen; ein bisheriger Besitzer gibt sie ab | TComponent |
RemoveComponent(c: TComponent): void | Komponente aus dem Besitz nehmen | TComponent |
SetName(v: pchar): void | Setzt Name | TComponent |
SetState(bits: int64): void | Zustand setzen | TComponent |
SetTag(v: int64): void | Setzt Tag | TComponent |
BorderStyle(): int64 | Delphis BorderStyle kennt genau zwei Werte: kein Rahmen oder eine Linie. Das ist ein Ausschnitt aus Border (PB_*), und beide zeigen hier auf dasselbe Feld | TPanel |
ContentRect(): TRect | Die Flaeche innerhalb aller Kanten und Raender. Dahin gehört die Beschriftung — und wer Kinder von Hand setzt, rechnet damit. BorderWidth ist das geerbte Feld von TControl; die … | TPanel |
Create(): void | Anlegen; new TGridPanel() | TPanel |
SetAlignment(v: int64): void | Setzt Alignment | TPanel |
SetBevelColor(v: TColor): void | Setzt BevelColor | TPanel |
SetBevelInner(v: int64): void | Setzt BevelInner | TPanel |
SetBevelOuter(v: int64): void | Setzt BevelOuter | TPanel |
SetBevelWidth(v: int64): void | Setzt BevelWidth | TPanel |
SetBorderStyle(v: int64): void | Fensterrahmen setzen | TPanel |
SetCaptionText(s: pchar): void | Text setzen und neu zeichnen | TPanel |
SetTextLayout(v: int64): void | Setzt TextLayout | TPanel |
AddCellChild(c: TControl, col: int64, row: int64): TGridPanelControl | Ein Kind aufnehmen und in eine Zelle setzen | eigen |
ArrangeGrid(): void | Jedes eingetragene Kind auf seine Zelle setzen. Kinder ohne Eintrag oder mit einer Zelle außerhalb des Rasters bleiben, wo sie sind — siehe Kopf, Abschnitt ExpandStyle | eigen |
CellRect(col: int64, row: int64): TRect | Das Rechteck einer Zelle, in Koordinaten der Flaeche | eigen |
ColumnCount(): int64 | Zahl der Spalten | eigen |
ColumnWidth(i: int64): int64 | Breite einer Spalte. Bei einer Spalte ist das die ganze Flaeche | eigen |
Create(): void | Anlegen; new TGridPanel() | eigen |
Destroy(): void | Gibt eigene Ressourcen frei | eigen |
RowCount(): int64 | Zahl der Zeilen | eigen |
RowHeight(i: int64): int64 | Höhe einer Zeile | eigen |
SetGridSize(cols: int64, rows: int64): void | Ein gleichmaessiges Raster aufspannen — der haeufigste Fall, und ohne ihn muesste jeder Aufrufer zwei Schleifen schreiben | eigen |
Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus vega/extctrls.lyx im Repo lyx-vcl.
