TButton — Knopf

Der Standardknopf: Beschriftung, Klick, fertig. Er nimmt den Fokus an und reagiert auf Leertaste und Eingabetaste.

Unit: Vega.StdCtrls · Basis: TControl

Alle Steuerelemente · Guide: Komponenten


Verwendung

var b: TButton := new TButton("Speichern");
b.SetBounds(16, 56, 130, 30);
b.OnClick := OnSpeichern;
b.SetParent(f);

// In einem Dialog: der Knopf setzt das Ergebnis und schliesst ihn
var ok: TButton := new TButton("OK");
ok.ModalResult := mrOk;
ok.Default := true;          // reagiert auf die Eingabetaste
ok.SetParent(dlg);


Besonderheiten

  • ModalResult schließt einen Dialog. Trägt der Knopf einen Wert ≠ mrNone, setzt ein Klick das ModalResult des Fensters — ShowModal kehrt damit zurück.
  • Default := true bindet den Knopf an die Eingabetaste, Cancel := true an Escape.
  • PaintContent ist überschreibbar: Wer einen Knopf mit Symbol oder eigener Innendarstellung will, erbt von TButton und ersetzt nur diesen Teil — Rahmen, Zustände und Fokusdarstellung bleiben.
  • Für Rollen wie „gefährlich„ oder „Hauptaktion“ nicht die Farbe setzen, sondern SetRole(„primary“) bzw. SetRole(„danger“).

Eigenschaften

Alle Eigenschaften, auch die geerbten.

Name Typ Bedeutung Herkunft
ModalResult int64 Wert, mit dem ein modales Fenster endet (mrOk, mrCancel …); mrNone schließt nicht eigen
Default bool Reagiert auf die Eingabetaste eigen
Cancel bool Reagiert auf Escape eigen
Glyph TBitmap Bild auf dem Knopf; gehört ihm und wird mit freigegeben TCustomButton
NumGlyphs int64 Wie viele Zustände das Bild nebeneinander enthält (1–4) TCustomButton
Layout int64 Seite, auf der das Bild sitzt: BL_GLYPH_LEFT (0), BL_GLYPH_RIGHT (1), BL_GLYPH_TOP (2), BL_GLYPH_BOTTOM (3) TCustomButton
Spacing int64 Abstand zwischen Symbol und Text TCustomButton
Margin int64 Abstand zum Rand TCustomButton
Parent TControl Zeichnerisches Elternteil TControl
Children TObjectList Kinder TControl
ChildCount int64 Anzahl der Kinder TControl
Left int64 Position relativ zum Elternteil TControl
Top int64 Position relativ zum Elternteil TControl
Width int64 Breite TControl
Height int64 Höhe TControl
Visible bool Wird gezeichnet und nimmt am Layout teil TControl
Enabled bool Nimmt Eingaben an TControl
Focused bool Hat den Tastaturfokus (nur lesen) TControl
Hovered bool Zeiger steht darüber TControl
Pressed bool Maustaste ist gedrückt TControl
CanFocus bool Kann den Fokus überhaupt bekommen TControl
Align int64 Ausrichtung: AL_NONE (0), AL_TOP (1), AL_BOTTOM (2), AL_LEFT (3), AL_RIGHT (4), AL_CLIENT (5) TControl
Anchors int64 Bitmaske: ANCHOR_LEFT (1), ANCHOR_TOP (2), ANCHOR_RIGHT (4), ANCHOR_BOTTOM (8) TControl
Font TFont Eigene Schrift oder 0 = die des Elternteils (Zeiger, keine Kopie) TControl
Cursor int64 Mauszeiger (CUR_*); CUR_DEFAULT erbt vom Elternteil TControl
TabStop bool Wird per Tabulator angesteuert TControl
TabOrder int64 Reihenfolge beim Tabulator TControl
HelpType int64 Art der Hilfeanbindung TControl
HelpContext int64 Hilfekennung TControl
HelpKeyword pchar Hilfestichwort TControl
BorderWidth int64 Abstand zwischen Rand und Kindern TControl
AutoSize bool Größe aus dem Inhalt ableiten TControl
MinWidth int64 Kleinste Breite; 0 = keine Grenze TControl
MinHeight int64 Kleinste Höhe; 0 = keine Grenze TControl
MaxWidth int64 Größte Breite; 0 = keine Grenze TControl
MaxHeight int64 Größte Höhe; 0 = keine Grenze TControl
DragMode int64 DM_MANUAL (0), DM_AUTOMATIC (1) TControl
PopupMenuPtr int64 Kontextmenü (TPopupMenu als Zahl) TControl
ActionPtr int64 Verknüpfter Befehl (TAction) TControl
Hint pchar Kurztext TControl
ShowHint bool Kurztext anzeigen — wirkt auch auf Kinder TControl
Caption pchar Beschriftung — hält nur den Zeiger, keine Kopie TControl
Dirty bool Neuzeichnen steht aus TControl
AutoRepaint bool Nach Änderungen selbst neu zeichnen TControl
PendingRepaint bool Neuzeichnen ist angefordert TControl
Color TColor Grundfarbe, sofern das Theme nichts vorgibt TControl
Theme TTheme Eigenes Theme statt des voreingestellten TControl
StyleType int64 Typnummer im Stylesheet TControl
StyleRole int64 Rolle im Stylesheet (SetRole) TControl
StyleClasses TIntArray Stilklassen TControl
StyleClassCount int64 Zahl der Stilklassen TControl
ExplicitStyle TStyleSet Werte, die den Themewechsel überleben TControl
ScopeStyle TStyleSheet Stylesheet für diesen Teilbaum TControl
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(caption: pchar): void Anlegen; new TButton(„Text“) eigen
Paint(canvas: TCanvas): void Vollständige Darstellung (überschrieben) eigen
PaintContent(canvas: TCanvas, r: TRect, col: TColor): void Innendarstellung (überschreibbar) eigen
DoKeyDown(key: int64, modifiers: int64): void Leertaste/Eingabetaste (überschrieben) eigen
InitGlyph(): void Die Bildfelder auf ihre Vorgaben setzen — nach self.Init() im Create zu rufen TCustomButton
Destroy(): void Gibt eigene Ressourcen frei TCustomButton
HasGlyph(): bool Hat ein Symbol TCustomButton
LoadGlyphFromFile(path: pchar): bool Symbol aus einer Datei laden TCustomButton
SetGlyph(src: TBitmap): void Symbol setzen TCustomButton
SetNumGlyphs(n: int64): void Zahl der Zustandsbilder TCustomButton
SetLayout(v: int64): void Lage von Symbol und Text TCustomButton
SetSpacing(v: int64): void Abstand Symbol/Text TCustomButton
SetMargin(v: int64): void Abstand zum Rand TCustomButton
GlyphWidth(): int64 Breite des Symbols TCustomButton
GlyphHeight(): int64 Höhe des Symbols TCustomButton
GlyphIndexNow(): int64 Aktuelles Zustandsbild TCustomButton
ContentLayout(r: TRect): TGlyphLayout Aufteilung von Symbol und Text TCustomButton
DrawGlyphAndText(canvas: TCanvas, r: TRect, col: TColor): void Bild und Beschriftung in die Fläche malen; ohne Bild nur den Text TCustomButton
Init(): void Vorgaben von TControl setzen — in eigenen Klassen als erste Zeile im Create TControl
SetLeft(v: int64): void Position setzen und neu zeichnen TControl
GetLeft(): int64 Position lesen TControl
SetTop(v: int64): void Position setzen und neu zeichnen TControl
GetTop(): int64 Position lesen TControl
SetWidth(v: int64): void Breite setzen und neu zeichnen TControl
GetWidth(): int64 Breite lesen TControl
SetHeight(v: int64): void Höhe setzen und neu zeichnen TControl
GetHeight(): int64 Höhe lesen TControl
SetVisible(v: bool): void Sichtbarkeit setzen TControl
GetVisible(): bool Sichtbarkeit lesen TControl
SetEnabled(v: bool): void Bedienbarkeit setzen TControl
GetEnabled(): bool Bedienbarkeit lesen TControl
SetCaption(v: pchar): void Beschriftung setzen und neu zeichnen TControl
GetCaption(): pchar Beschriftung lesen TControl
SetHint(v: pchar): void Kurztext setzen TControl
GetHint(): pchar Kurztext lesen TControl
SetName(v: pchar): void Bezeichner setzen TControl
IsClass(name: pchar): bool Ist von dieser Klasse TControl
FindByName(name: pchar): TControl Kind über Name finden TControl
FindTyped(name: pchar, klasse: pchar): TControl Kind über Name und Klasse finden TControl
CountClass(klasse: pchar): int64 Kinder dieser Klasse zählen TControl
GetName(): pchar Bezeichner lesen TControl
OwnerControl(): TControl Der Besitzer als TControl — der kurze Weg zum Formular TControl
GetParentComponent(): TComponent Übergeordnete Komponente im Baum TControl
EffectiveFont(): TFont Tatsächlich geltende Schrift TControl
SetFont(f: TFont): void Schrift setzen TControl
HasOwnFont(): bool Eigene Schrift gesetzt TControl
SetCursor(v: int64): void Mauszeiger setzen TControl
GetCursor(): int64 Mauszeiger lesen TControl
EffectiveCursor(): int64 Tatsächlich geltender Zeiger TControl
SetConstraints(minW: int64, minH: int64, maxW: int64, maxH: int64): void Größengrenzen setzen TControl
ClampWidth(w: int64): int64 Breite auf die Grenzen bringen TControl
ClampHeight(h: int64): int64 Höhe auf die Grenzen bringen TControl
HasHint(): bool Hat einen Kurztext TControl
HintsAllowed(): bool Kurztexte hier erlaubt TControl
SetColor(v: TColor): void Farbe setzen TControl
GetColor(): TColor Farbe lesen TControl
SetAlign(v: int64): void Ausrichtung setzen TControl
GetAlign(): int64 Ausrichtung lesen TControl
SetAnchors(v: int64): void Anker setzen TControl
GetAnchors(): int64 Anker lesen TControl
SetTag(v: int64): void Freien Wert setzen TControl
GetTag(): int64 Freien Wert lesen TControl
SetCanFocus(v: bool): void Fokusfähigkeit setzen TControl
GetCanFocus(): bool Fokusfähigkeit lesen TControl
SetPosition(x: int64, y: int64): void Position in einem Zug TControl
SetSize(w: int64, h: int64): void Größe in einem Zug TControl
SetBounds(x: int64, y: int64, w: int64, h: int64): void Position und Größe in einem Zug TControl
SetRole(name: pchar): void Semantische Rolle fürs Theme („primary“, „danger“ …) TControl
AddStyleClass(name: pchar): void Stilklasse hinzufügen TControl
ClearStyleClasses(): void Stilklassen leeren TControl
SetStyle(prop: int64, value: int64): void Ausdrückliche Stilwerte setzen TControl
ResetStyle(prop: int64): void Ausdrückliche Stilwerte verwerfen TControl
HasExplicitStyle(prop: int64): bool Hat ausdrückliche Stilwerte TControl
StyleStates(): int64 Zustände fürs Theme (ST_*) TControl
StyleQueryFor(scale: int64): TStyleQuery Stilabfrage aufbauen TControl
ResolvedPartStyle(partName: pchar, partStates: int64): TStyleSet Aufgelöste Stilwerte eines Teils TControl
ResolvedStyle(): TStyleSet Aufgelöste Stilwerte (nach Gebrauch Destroy()) TControl
ClientRect(): TRect Fläche ohne Rahmen — die Zeichenfläche TControl
SetBorderWidth(v: int64): void Abstand zwischen Rand und Kindern setzen TControl
BoundsRect(): TRect Fläche einschließlich Rahmen TControl
AddChild(c: TControl): void Kind einhängen TControl
ChildAt(i: int64): TControl Kind über den Index TControl
RemoveChild(c: TControl): void Kind aushängen TControl
Root(): TControl Wurzel des Baums TControl
IsVisible(): bool Tatsächlich sichtbar (auch die Eltern) TControl
IsEnabled(): bool Tatsächlich bedienbar TControl
Show(): void Sichtbar machen TControl
Hide(): void Verbergen TControl
BringToFront(): void Nach vorn TControl
SendToBack(): void Nach hinten TControl
CanSetFocus(): bool Kann den Fokus jetzt bekommen TControl
SetFocus(): bool Fokus holen TControl
Update(): void Sofort zeichnen TControl
Refresh(): void Neu zeichnen TControl
ClientWidth(): int64 Breite der Zeichenfläche TControl
ClientHeight(): int64 Höhe der Zeichenfläche TControl
ClientOrigin(): TPoint Ursprung der Zeichenfläche auf dem Bildschirm TControl
ClientToScreen(x: int64, y: int64): TPoint Punkt in Bildschirmkoordinaten TControl
ScreenToClient(x: int64, y: int64): TPoint Punkt in Elementkoordinaten TControl
ControlCount(): int64 Zahl der Kinder TControl
Controls(i: int64): TControl Kind über den Index TControl
HasParent(): bool Hat ein Elternteil TControl
GetTopParent(): TControl Oberstes Elternteil TControl
IsParentOf(c: TControl): bool Ist Vorfahr von TControl
ContainsControl(c: TControl): bool Enthält dieses Element TControl
ControlAtPos(x: int64, y: int64): TControl Element an einer Position TControl
FindChildControl(name: pchar): TControl Direktes Kind über den Namen TControl
GetTextLen(): int64 Länge der Beschriftung TControl
GetTextBuf(dst: TTextBuffer): int64 Beschriftung in einen Puffer TControl
SetTextBuf(src: pchar): void Beschriftung aus einem Puffer TControl
SetTabOrder(v: int64): void Tabulatorreihenfolge setzen TControl
GetTabOrder(): int64 Tabulatorreihenfolge lesen TControl
PreferredWidth(): int64 Wunschbreite aus dem Inhalt TControl
PreferredHeight(): int64 Wunschhöhe aus dem Inhalt TControl
SetAutoSize(v: bool): void Automatische Größe schalten TControl
ApplyAutoSize(): void Größe an den Inhalt anpassen TControl
Showing(): bool Tatsächlich zu sehen: selbst sichtbar und jeder Vorfahr sichtbar TControl
DoubleBuffered(): bool Auskunft, ob doppelt gepuffert gezeichnet wird — in Vega immer true und nicht einstellbar TControl
InsertControl(c: TControl): void Kind aufnehmen (Delphi-Name für SetParent) TControl
RemoveControl(c: TControl): void Kind aushängen TControl
GetControlIndex(c: TControl): int64 Stelle eines Kindes in der Liste — zugleich die Z-Ordnung TControl
SetControlIndex(c: TControl, index: int64): void Kind an eine andere Stelle schieben; BringToFront und SendToBack sind die Sonderfälle TControl
DisableAlign(): void Layout anhalten (Delphi-Name für BeginUpdate) TControl
EnableAlign(): void Layout wieder zulassen (Delphi-Name für EndUpdate) TControl
ReAlign(): void Kinder neu ausrichten TControl
PaintTo(canvas: TCanvas, x: int64, y: int64): void Ganzen Teilbaum an eine Stelle einer beliebigen Zeichenfläche malen — für Vorschaubilder und Ausdrucke TControl
GetChildrenRect(): TRect Umschließendes Rechteck aller sichtbaren Kinder, in eigenen Koordinaten; leer, wenn es keine gibt TControl
ScrollBy(dx: int64, dy: int64): void Alle Kinder um dx,dy verschieben TControl
ScaleBy(m: int64, d: int64): void Größe und Lage im Verhältnis m/d ändern, samt aller Kinder — der Weg zu anderer Pixeldichte TControl
GetTabOrderList(dst: TObjectList): void Fokussierbare Controls in Tabulator-Reihenfolge sammeln; steigt in Kinder ab TControl
ToAbsolute(x: int64, y: int64): TPoint Punkt in absolute Koordinaten TControl
HitTest(x: int64, y: int64): TControl Element an einer Position (überschreibbar) TControl
Invalidate(): void Neuzeichnen anfordern TControl
Repaint(): void Sofort neu zeichnen TControl
SetParent(v: TControl): void In einen Container einhängen TControl
GetParent(): TControl Elternteil lesen TControl
SetAutoRepaint(v: bool): void Selbsttätiges Neuzeichnen schalten TControl
GetAutoRepaint(): bool Einstellung lesen TControl
BeginUpdate(): void Änderungen bündeln (kein Neuzeichnen bis EndUpdate) TControl
EndUpdate(): void Bündelung beenden und neu zeichnen TControl
EffectiveTheme(): TTheme Tatsächlich geltendes Theme TControl
PaintTree(canvas: TCanvas): void Sich und die Kinder zeichnen TControl
PaintChildren(canvas: TCanvas): void Kinder zeichnen (überschreibbar) TControl
DoClick(): void Klick behandeln (überschreibbar) TControl
DoMouseDown(x: int64, y: int64, button: int64): void Maustaste behandeln (überschreibbar) TControl
DoDblClick(): void Doppelklick behandeln (überschreibbar) TControl
DoStartDrag(): void Ziehgeste beginnen (überschreibbar) TControl
DoDragOver(source: TControl, x: int64, y: int64): bool Annahme prüfen (überschreibbar) TControl
DoDragDrop(source: TControl, x: int64, y: int64): void Ablegen behandeln (überschreibbar) TControl
DoEndDrag(target: TControl, x: int64, y: int64): void Geste beenden (überschreibbar) TControl
DoKeyUp(key: int64, modifiers: int64): void Loslassen behandeln (überschreibbar) TControl
DoContextPopup(x: int64, y: int64): bool Kontextmenü anfordern (überschreibbar) TControl
DoMouseUp(x: int64, y: int64, button: int64): void Loslassen behandeln (überschreibbar) TControl
DoMouseMove(x: int64, y: int64, button: int64): void Bewegung behandeln (überschreibbar) TControl
SetBackendRef(b: int64): void Backend bekannt machen TControl
DoMouseWheel(delta: int64): void Mausrad behandeln (überschreibbar) TControl
DoMouseEnter(): void Betreten behandeln (überschreibbar) TControl
DoMouseLeave(): void Verlassen behandeln (überschreibbar) TControl
DoChar(cp: int64): void Zeichen behandeln (überschreibbar) TControl
DoFocusIn(): void Fokus erhalten (überschreibbar) TControl
DoFocusOut(): void Fokus verloren (überschreibbar) TControl
DoResize(): void Größenänderung behandeln (überschreibbar) TControl
ApplyLayout(): void Kinder ausrichten — eine Ebene tief TControl
InitComponent(): void Grundzustand herstellen — von jeder Ableitung im Create zu rufen, da Lyx Konstruktoren nicht vererbt 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 TControl
OnDblClick TNotifyEvent Doppelklick TControl
OnMouseDown TMouseEvent Maustaste gedrückt; Koordinaten relativ zum Control TControl
OnMouseUp TMouseEvent Maustaste losgelassen TControl
OnMouseMove TMouseEvent Zeiger bewegt sich über dem Control TControl
OnMouseEnter TNotifyEvent Zeiger betritt die Fläche TControl
OnMouseLeave TNotifyEvent Zeiger verlässt die Fläche TControl
OnKeyDown TKeyEvent Taste gedrückt (KEY_*, MOD_*) TControl
OnKeyUp TKeyEvent Taste losgelassen TControl
OnChar TCharEvent Eingegebenes Zeichen (Unicode-Codepoint) TControl
OnMouseWheel TWheelEvent Mausrad; delta ist +1 oder -1 TControl
OnPaint TPaintEvent Zeichnen TControl
OnResize TNotifyEvent Größe geändert TControl
OnFocusIn TNotifyEvent Fokus erhalten TControl
OnFocusOut TNotifyEvent Fokus verloren TControl
OnEnter TNotifyEvent Element betreten TControl
OnExit TNotifyEvent Element verlassen TControl
OnKeyPress TCharEvent Wie OnChar TControl
OnChangeBounds TNotifyEvent Geometrie geändert TControl
OnShowHint TNotifyEvent Kurztext erscheint TControl
OnContextPopup TMouseEvent Kontextmenü angefordert TControl
OnStartDrag TNotifyEvent Ziehgeste beginnt TControl
OnDragOver TDragOverEvent Über einem möglichen Ziel; Rückgabe true = annehmen TControl
OnDragDrop TDragDropEvent Abgelegt TControl
OnEndDrag TDragEndEvent Geste beendet; target ist 0 bei Abbruch TControl

Letzte Aktualisierung: 2026-08-19 — API maschinell aus Vega/StdCtrls.lyx erhoben, Beispiel mit lyxc 1.1.3I übersetzt.