TControl — die gemeinsame Grundlage
Jedes Steuerelement in Vega erbt von TControl. Was hier steht, gilt deshalb für alle — die Detailseiten der einzelnen Controls führen nur noch auf, was dazukommt.
→ Alle Steuerelemente · Guide: Eigenschaften · Guide: Ereignisse
Unit: Vega.Control · Basis: TComponent
Einordnung
TControl ist gleichzeitig Basisklasse und Container: Es hält Kinder, kennt seine Geometrie, zeichnet sich und verteilt Ereignisse. Ein Element ohne eigene Darstellung (new TControl()) taugt als reiner Container — genau so werden Leisten und Spalten gebaut.
Darüber liegt seit dem Komponenten-Split TComponent: von dort kommen Owner, Name, Tag, ComponentState und die Besitzverwaltung. Die Trennlinie verläuft am Zeichnen — was nie malt, sondern nur hält oder tickt (TTimer, TImageList), hängt direkt an TComponent.
Verwendung
var c: TControl := new TControl(); // roher Container
c.Height := 32;
c.Align := AL_BOTTOM;
c.SetParent(f);
var b: TButton := new TButton("OK"); // jedes Control kann dasselbe
b.SetBounds(8, 4, 100, 24);
b.Tag := 1;
b.SetHint("Übernimmt die Eingabe");
b.OnClick := OnOk;
b.SetParent(c);
Besonderheiten
- Setter zeichnen neu, Felder nicht.
c.Left := 20verschiebt ohne Neuzeichnen,c.SetLeft(20)zeichnet neu. Die Felder bleiben öffentlich lesbar — für Berechnungen ist der direkte Zugriff richtig. BeginUpdate()/EndUpdate()fasst mehrere Änderungen zu einem Neuzeichnen zusammen.Parentist die zeichnerische Verschachtelung,Ownerdie logische Zugehörigkeit (meist das Formular) — bei Handlern der Weg zurück zum Fenster.Ownerist seit dem Komponenten-Split ein TComponent;OwnerControl()liefert ihn ohne Umwandlung von Hand alsTControl.AddChildreicht den Besitzer nach unten durch, trägt das Kind aber nicht inOwnedComponentsein — siehe TComponent.AlignschlägtLeft/Top/Width/Height. Ein ausgerichtetes Kind bekommt seine Geometrie vom Layout.Fontist ein Zeiger, keine Kopie: mehrere Controls teilen sich dieselbe Schrift.0heißt „die des Elternteils„.
Eigenschaften
Alle Eigenschaften, auch die geerbten.
| Name | Typ | Bedeutung | Herkunft |
|---|---|---|---|
Parent | TControl | Zeichnerisches Elternteil | eigen |
Children | TObjectList | Kinder | eigen |
ChildCount | int64 | Anzahl der Kinder | eigen |
Left | int64 | Position relativ zum Elternteil | eigen |
Top | int64 | Position relativ zum Elternteil | eigen |
Width | int64 | Breite | eigen |
Height | int64 | Höhe | eigen |
Visible | bool | Wird gezeichnet und nimmt am Layout teil | eigen |
Enabled | bool | Nimmt Eingaben an | eigen |
Focused | bool | Hat den Tastaturfokus (nur lesen) | eigen |
Hovered | bool | Zeiger steht darüber | eigen |
Pressed | bool | Maustaste ist gedrückt | eigen |
CanFocus | bool | Kann den Fokus überhaupt bekommen | eigen |
Align | int64 | Ausrichtung: AL_NONE (0), AL_TOP (1), AL_BOTTOM (2), AL_LEFT (3), AL_RIGHT (4), AL_CLIENT (5) | eigen |
Anchors | int64 | Bitmaske: ANCHOR_LEFT (1), ANCHOR_TOP (2), ANCHOR_RIGHT (4), ANCHOR_BOTTOM (8) | eigen |
Font | TFont | Eigene Schrift oder 0 = die des Elternteils (Zeiger, keine Kopie) | eigen |
Cursor | int64 | Mauszeiger (CUR_*); CUR_DEFAULT erbt vom Elternteil | eigen |
TabStop | bool | Wird per Tabulator angesteuert | eigen |
TabOrder | int64 | Reihenfolge beim Tabulator | eigen |
HelpType | int64 | Art der Hilfeanbindung | eigen |
HelpContext | int64 | Hilfekennung | eigen |
HelpKeyword | pchar | Hilfestichwort | eigen |
BorderWidth | int64 | Abstand zwischen Rand und Kindern | eigen |
AutoSize | bool | Größe aus dem Inhalt ableiten | eigen |
MinWidth | int64 | Kleinste Breite; 0 = keine Grenze | eigen |
MinHeight | int64 | Kleinste Höhe; 0 = keine Grenze | eigen |
MaxWidth | int64 | Größte Breite; 0 = keine Grenze | eigen |
MaxHeight | int64 | Größte Höhe; 0 = keine Grenze | eigen |
DragMode | int64 | DM_MANUAL (0), DM_AUTOMATIC (1) | eigen |
PopupMenuPtr | int64 | Kontextmenü (TPopupMenu als Zahl) | eigen |
ActionPtr | int64 | Verknüpfter Befehl (TAction) | eigen |
Hint | pchar | Kurztext | eigen |
ShowHint | bool | Kurztext anzeigen — wirkt auch auf Kinder | eigen |
Caption | pchar | Beschriftung — hält nur den Zeiger, keine Kopie | eigen |
Dirty | bool | Neuzeichnen steht aus | eigen |
AutoRepaint | bool | Nach Änderungen selbst neu zeichnen | eigen |
PendingRepaint | bool | Neuzeichnen ist angefordert | eigen |
Color | TColor | Grundfarbe, sofern das Theme nichts vorgibt | eigen |
Theme | TTheme | Eigenes Theme statt des voreingestellten | eigen |
StyleType | int64 | Typnummer im Stylesheet | eigen |
StyleRole | int64 | Rolle im Stylesheet (SetRole) | eigen |
StyleClasses | TIntArray | Stilklassen | eigen |
StyleClassCount | int64 | Zahl der Stilklassen | eigen |
ExplicitStyle | TStyleSet | Werte, die den Themewechsel überleben | eigen |
ScopeStyle | TStyleSheet | Stylesheet für diesen Teilbaum | eigen |
Owner | TComponent | Wer diese Komponente wegräumt — nicht das Elternteil im Zeichenbaum | TComponent |
OwnedComponents | TObjectList | Die Komponenten, die dieser gehören (Delphis Components[]) | TComponent |
Name | pchar | Name der Komponente, für FindComponent und Formulardateien | TComponent |
Tag | int64 | Freier Wert für die Anwendung | TComponent |
ComponentState | int64 | Zustand als Bitmaske: csLoading, csDestroying, csDesigning … | TComponent |
ComponentStyle | int64 | Stil als Bitmaske; Vorgabe csInheritable | TComponent |
Methoden
Alle Methoden, auch die geerbten.
| Signatur | Zweck | Herkunft |
|---|---|---|
Create(): void | Konstruktor | eigen |
Init(): void | Vorgaben von TControl setzen — in eigenen Klassen als erste Zeile im Create | eigen |
SetLeft(v: int64): void | Position setzen und neu zeichnen | eigen |
GetLeft(): int64 | Position lesen | eigen |
SetTop(v: int64): void | Position setzen und neu zeichnen | eigen |
GetTop(): int64 | Position lesen | eigen |
SetWidth(v: int64): void | Breite setzen und neu zeichnen | eigen |
GetWidth(): int64 | Breite lesen | eigen |
SetHeight(v: int64): void | Höhe setzen und neu zeichnen | eigen |
GetHeight(): int64 | Höhe lesen | eigen |
SetVisible(v: bool): void | Sichtbarkeit setzen | eigen |
GetVisible(): bool | Sichtbarkeit lesen | eigen |
SetEnabled(v: bool): void | Bedienbarkeit | eigen |
GetEnabled(): bool | Bedienbarkeit lesen | eigen |
SetCaption(v: pchar): void | Beschriftung setzen und neu zeichnen | eigen |
GetCaption(): pchar | Beschriftung lesen | eigen |
SetHint(v: pchar): void | Kurztext setzen | eigen |
GetHint(): pchar | Kurztext lesen | eigen |
SetName(v: pchar): void | Bezeichner setzen | eigen |
IsClass(name: pchar): bool | Ist von dieser Klasse | eigen |
FindByName(name: pchar): TControl | Kind über Name finden | eigen |
FindTyped(name: pchar, klasse: pchar): TControl | dasselbe mit Klassenprüfung | eigen |
CountClass(klasse: pchar): int64 | Kinder dieser Klasse zählen | eigen |
GetName(): pchar | Bezeichner lesen | eigen |
OwnerControl(): TControl | Der Besitzer als TControl — der kurze Weg zum Formular | eigen |
GetParentComponent(): TComponent | Übergeordnete Komponente im Baum | eigen |
EffectiveFont(): TFont | Tatsächlich geltende Schrift | eigen |
SetFont(f: TFont): void | Schrift setzen | eigen |
HasOwnFont(): bool | Eigene Schrift gesetzt | eigen |
SetCursor(v: int64): void | Mauszeiger setzen | eigen |
GetCursor(): int64 | Mauszeiger lesen | eigen |
EffectiveCursor(): int64 | Tatsächlich geltender Zeiger | eigen |
SetConstraints(minW: int64, minH: int64, maxW: int64, maxH: int64): void | Grenzen setzen | eigen |
ClampWidth(w: int64): int64 | Breite auf die Grenzen bringen | eigen |
ClampHeight(h: int64): int64 | Höhe auf die Grenzen bringen | eigen |
HasHint(): bool | Hat einen Kurztext | eigen |
HintsAllowed(): bool | Kurztexte hier erlaubt | eigen |
SetColor(v: TColor): void | Farbe setzen | eigen |
GetColor(): TColor | Farbe lesen | eigen |
SetAlign(v: int64): void | Ausrichtung setzen | eigen |
GetAlign(): int64 | Ausrichtung lesen | eigen |
SetAnchors(v: int64): void | Anker setzen | eigen |
GetAnchors(): int64 | Anker lesen | eigen |
SetTag(v: int64): void | Freien Wert setzen | eigen |
GetTag(): int64 | Freien Wert lesen | eigen |
SetCanFocus(v: bool): void | Fokusfähigkeit setzen | eigen |
GetCanFocus(): bool | Fokusfähigkeit lesen | eigen |
SetPosition(x: int64, y: int64): void | Position in einem Zug | eigen |
SetSize(w: int64, h: int64): void | Größe in einem Zug | eigen |
SetBounds(x: int64, y: int64, w: int64, h: int64): void | Position und Größe in einem Zug | eigen |
SetRole(name: pchar): void | Semantische Rolle fürs Theme („primary“, „danger“ …) | eigen |
AddStyleClass(name: pchar): void | Stilklasse hinzufügen | eigen |
ClearStyleClasses(): void | Stilklassen leeren | eigen |
SetStyle(prop: int64, value: int64): void | Ausdrückliche Stilwerte setzen | eigen |
ResetStyle(prop: int64): void | Ausdrückliche Stilwerte verwerfen | eigen |
HasExplicitStyle(prop: int64): bool | Hat ausdrückliche Stilwerte | eigen |
StyleStates(): int64 | Zustände fürs Theme (ST_*) | eigen |
StyleQueryFor(scale: int64): TStyleQuery | Stilabfrage aufbauen | eigen |
ResolvedPartStyle(partName: pchar, partStates: int64): TStyleSet | Aufgelöste Stilwerte eines Teils | eigen |
ResolvedStyle(): TStyleSet | Aufgelöste Stilwerte (nach Gebrauch Destroy()) | eigen |
ClientRect(): TRect | Fläche ohne Rahmen — die Zeichenfläche | eigen |
SetBorderWidth(v: int64): void | Abstand zwischen Rand und Kindern setzen | eigen |
BoundsRect(): TRect | Fläche einschließlich Rahmen | eigen |
AddChild(c: TControl): void | Kind einhängen | eigen |
ChildAt(i: int64): TControl | Kind über den Index | eigen |
RemoveChild(c: TControl): void | Aushängen | eigen |
Root(): TControl | Wurzel des Baums | eigen |
IsVisible(): bool | Tatsächlich sichtbar (auch die Eltern) | eigen |
IsEnabled(): bool | Tatsächlich bedienbar | eigen |
Show(): void | Sichtbar machen | eigen |
Hide(): void | Verbergen | eigen |
BringToFront(): void | Nach vorn | eigen |
SendToBack(): void | Nach hinten | eigen |
CanSetFocus(): bool | Kann den Fokus jetzt bekommen | eigen |
SetFocus(): bool | Fokus holen | eigen |
Update(): void | Sofort zeichnen | eigen |
Refresh(): void | Neu zeichnen | eigen |
ClientWidth(): int64 | Breite der Zeichenfläche | eigen |
ClientHeight(): int64 | Höhe der Zeichenfläche | eigen |
ClientOrigin(): TPoint | Ursprung der Zeichenfläche auf dem Bildschirm | eigen |
ClientToScreen(x: int64, y: int64): TPoint | Punkt in Bildschirmkoordinaten | eigen |
ScreenToClient(x: int64, y: int64): TPoint | Punkt in Elementkoordinaten | eigen |
ControlCount(): int64 | Zahl der Kinder | eigen |
Controls(i: int64): TControl | Kind über den Index | eigen |
HasParent(): bool | Hat ein Elternteil | eigen |
GetTopParent(): TControl | Oberstes Elternteil | eigen |
IsParentOf(c: TControl): bool | Ist Vorfahr von | eigen |
ContainsControl(c: TControl): bool | Enthält dieses Element | eigen |
ControlAtPos(x: int64, y: int64): TControl | Element an einer Position | eigen |
FindChildControl(name: pchar): TControl | Nur direkte Kinder | eigen |
GetTextLen(): int64 | Länge der Beschriftung | eigen |
GetTextBuf(dst: TTextBuffer): int64 | Beschriftung in einen Puffer | eigen |
SetTextBuf(src: pchar): void | Beschriftung aus einem Puffer | eigen |
SetTabOrder(v: int64): void | Tabulatorreihenfolge setzen | eigen |
GetTabOrder(): int64 | Tabulatorreihenfolge lesen | eigen |
PreferredWidth(): int64 | Wunschbreite aus dem Inhalt | eigen |
PreferredHeight(): int64 | Wunschhöhe aus dem Inhalt | eigen |
SetAutoSize(v: bool): void | Automatische Größe schalten | eigen |
ApplyAutoSize(): void | Größe an den Inhalt anpassen | eigen |
Showing(): bool | Tatsächlich zu sehen: selbst sichtbar und jeder Vorfahr sichtbar | eigen |
DoubleBuffered(): bool | Auskunft, ob doppelt gepuffert gezeichnet wird — in Vega immer true und nicht einstellbar | eigen |
InsertControl(c: TControl): void | Kind aufnehmen (Delphi-Name für SetParent) | eigen |
RemoveControl(c: TControl): void | Kind aushängen | eigen |
GetControlIndex(c: TControl): int64 | Stelle eines Kindes in der Liste — zugleich die Z-Ordnung | eigen |
SetControlIndex(c: TControl, index: int64): void | Kind an eine andere Stelle schieben; BringToFront und SendToBack sind die Sonderfälle | eigen |
DisableAlign(): void | Layout anhalten (Delphi-Name für BeginUpdate) | eigen |
EnableAlign(): void | Layout wieder zulassen (Delphi-Name für EndUpdate) | eigen |
ReAlign(): void | Kinder neu ausrichten | eigen |
PaintTo(canvas: TCanvas, x: int64, y: int64): void | Ganzen Teilbaum an eine Stelle einer beliebigen Zeichenfläche malen — für Vorschaubilder und Ausdrucke | eigen |
GetChildrenRect(): TRect | Umschließendes Rechteck aller sichtbaren Kinder, in eigenen Koordinaten; leer, wenn es keine gibt | eigen |
ScrollBy(dx: int64, dy: int64): void | Alle Kinder um dx,dy verschieben | eigen |
ScaleBy(m: int64, d: int64): void | Größe und Lage im Verhältnis m/d ändern, samt aller Kinder — der Weg zu anderer Pixeldichte | eigen |
GetTabOrderList(dst: TObjectList): void | Fokussierbare Controls in Tabulator-Reihenfolge sammeln; steigt in Kinder ab | eigen |
ToAbsolute(x: int64, y: int64): TPoint | Punkt in absolute Koordinaten | eigen |
HitTest(x: int64, y: int64): TControl | Welches Element liegt dort (überschreibbar) | eigen |
Invalidate(): void | Neuzeichnen anfordern | eigen |
Repaint(): void | Sofort neu zeichnen | eigen |
SetParent(v: TControl): void | In einen Container einhängen | eigen |
GetParent(): TControl | Elternteil lesen | eigen |
SetAutoRepaint(v: bool): void | Selbsttätiges Neuzeichnen schalten | eigen |
GetAutoRepaint(): bool | Einstellung lesen | eigen |
BeginUpdate(): void | Änderungen bündeln (kein Neuzeichnen bis EndUpdate) | eigen |
EndUpdate(): void | Bündelung beenden und neu zeichnen | eigen |
EffectiveTheme(): TTheme | Tatsächlich geltendes Theme | eigen |
Paint(canvas: TCanvas): void | Darstellung (überschreibbar) | eigen |
PaintTree(canvas: TCanvas): void | Sich und die Kinder zeichnen | eigen |
PaintChildren(canvas: TCanvas): void | Kinder zeichnen (überschreibbar) | eigen |
DoClick(): void | Klick behandeln (überschreibbar) | eigen |
DoMouseDown(x: int64, y: int64, button: int64): void | Maustaste behandeln (überschreibbar) | eigen |
DoDblClick(): void | Doppelklick behandeln (überschreibbar) | eigen |
DoStartDrag(): void | Ziehgeste beginnen (überschreibbar) | eigen |
DoDragOver(source: TControl, x: int64, y: int64): bool | Annahme prüfen (überschreibbar) | eigen |
DoDragDrop(source: TControl, x: int64, y: int64): void | Ablegen behandeln (überschreibbar) | eigen |
DoEndDrag(target: TControl, x: int64, y: int64): void | Geste beenden (überschreibbar) | eigen |
DoKeyUp(key: int64, modifiers: int64): void | Loslassen behandeln (überschreibbar) | eigen |
DoContextPopup(x: int64, y: int64): bool | Kontextmenü anfordern (überschreibbar) | eigen |
DoMouseUp(x: int64, y: int64, button: int64): void | Loslassen behandeln (überschreibbar) | eigen |
DoMouseMove(x: int64, y: int64, button: int64): void | Bewegung behandeln (überschreibbar) | eigen |
SetBackendRef(b: int64): void | Backend bekannt machen | eigen |
DoMouseWheel(delta: int64): void | Mausrad behandeln (überschreibbar) | eigen |
DoMouseEnter(): void | Betreten behandeln (überschreibbar) | eigen |
DoMouseLeave(): void | Verlassen behandeln (überschreibbar) | eigen |
DoKeyDown(key: int64, modifiers: int64): void | Taste behandeln (überschreibbar) | eigen |
DoChar(cp: int64): void | Zeichen behandeln (überschreibbar) | eigen |
DoFocusIn(): void | Fokus erhalten (überschreibbar) | eigen |
DoFocusOut(): void | Fokus verloren (überschreibbar) | eigen |
DoResize(): void | Größenänderung behandeln (überschreibbar) | eigen |
ApplyLayout(): void | Kinder ausrichten — eine Ebene tief | eigen |
InitComponent(): void | Grundzustand herstellen — von jeder Ableitung im Create zu rufen, da Lyx Konstruktoren nicht vererbt | TComponent |
Destroy(): void | Gibt eigene Ressourcen frei | TComponent |
ComponentCount(): int64 | Anzahl der eigenen Komponenten | TComponent |
Components(index: int64): TComponent | Eigene Komponente an dieser Stelle | TComponent |
ComponentIndex(): int64 | Eigener Platz in der Liste des Besitzers, -1 ohne Besitzer | 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 |
FindComponent(name: pchar): TComponent | Eigene Komponente über ihren Name suchen — eine Ebene tief | TComponent |
DestroyComponents(): void | Alle Besitztümer abbauen, von hinten nach vorn | TComponent |
HasState(bits: int64): bool | Sind diese Zustandsbits gesetzt | TComponent |
SetState(bits: int64): void | Zustandsbits setzen | TComponent |
ClearState(bits: int64): void | Zustandsbits löschen | TComponent |
GetNamePath(): pchar | Voller Name für Formulardateien; in Vega der Name selbst | TComponent |
Tick(now: int64): bool | Einmal je Bild aus der Fensterschleife; true = es hat sich etwas getan, also neu zeichnen | TComponent |
NextDueIn(now: int64): int64 | Wie lange die Schleife höchstens schlafen darf, bis diese Komponente wieder dran ist; -1 = nie von selbst | TComponent |
Ereignisse
| Name | Typ | Wann | Herkunft |
|---|---|---|---|
OnClick | TNotifyEvent | Klick | eigen |
OnDblClick | TNotifyEvent | Doppelklick | eigen |
OnMouseDown | TMouseEvent | Maustaste gedrückt; Koordinaten relativ zum Control | eigen |
OnMouseUp | TMouseEvent | Maustaste losgelassen | eigen |
OnMouseMove | TMouseEvent | Zeiger bewegt sich über dem Control | eigen |
OnMouseEnter | TNotifyEvent | Zeiger betritt die Fläche | eigen |
OnMouseLeave | TNotifyEvent | Zeiger verlässt die Fläche | eigen |
OnKeyDown | TKeyEvent | Taste gedrückt (KEY_*, MOD_*) | eigen |
OnKeyUp | TKeyEvent | Taste losgelassen | eigen |
OnChar | TCharEvent | Eingegebenes Zeichen (Unicode-Codepoint) | eigen |
OnMouseWheel | TWheelEvent | Mausrad; delta ist +1 oder -1 | eigen |
OnPaint | TPaintEvent | Zeichnen | eigen |
OnResize | TNotifyEvent | Größe geändert | eigen |
OnFocusIn | TNotifyEvent | Fokus erhalten | eigen |
OnFocusOut | TNotifyEvent | Fokus verloren | eigen |
OnEnter | TNotifyEvent | Element betreten | eigen |
OnExit | TNotifyEvent | Element verlassen | eigen |
OnKeyPress | TCharEvent | Wie OnChar | eigen |
OnChangeBounds | TNotifyEvent | Geometrie geändert | eigen |
OnShowHint | TNotifyEvent | Kurztext erscheint | eigen |
OnContextPopup | TMouseEvent | Kontextmenü angefordert | eigen |
OnStartDrag | TNotifyEvent | Ziehgeste beginnt | eigen |
OnDragOver | TDragOverEvent | Über einem möglichen Ziel; Rückgabe true = annehmen | eigen |
OnDragDrop | TDragDropEvent | Abgelegt | eigen |
OnEndDrag | TDragEndEvent | Geste beendet; target ist 0 bei Abbruch | eigen |
Letzte Aktualisierung: 2026-08-20 — API maschinell aus Vega/Control.lyx und Vega/Component.lyx erhoben; Komponenten-Split (TComponent als neue Basis) mit lyxc 1.1.4A nachgemessen.
