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
Kette: TComponent → TControl → TPanel → TGridPanel
Direkte Nachfahren: keine — diese Klasse wird nicht weiter abgeleitet.
Quelle: vega/extctrls.lyx
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.
ColumnCollection und RowCollection beschreiben die Spuren, ControlCollection merkt sich, welches Kind in welcher Zelle sitzt.CellSpacing ist der Abstand zwischen den Zellen — der Rahmen des Panels selbst wird über die geerbten Bevel-Eigenschaften eingestellt.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 |
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.