====== TControlBar — Bänder mit Griff ====== Eine Fläche, auf der **Bänder** liegen: waagerechte Streifen mit einem Griff links, die sich mit der Maus umsortieren lassen. Der übliche Platz für Werkzeugleisten, die der Benutzer selbst anordnen darf. Unit: ''vega.layoutctrls'' · Basis: [[lyx_-_programmiersprache:vega:controls:tcontrol|TControl]] → [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega:klassenbaum|Klassenbaum]] · [[lyx_-_programmiersprache:vega:guides:komponenten|Guide: Komponenten]] ---- ===== Vererbung ===== **Kette:** [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] → [[lyx_-_programmiersprache:vega:controls:tcontrol|TControl]] → **TControlBar** **Direkte Nachfahren:** [[lyx_-_programmiersprache:vega:controls:tcoolbar|TCoolBar]] **Quelle:** ''vega/layoutctrls.lyx'' ---- ===== Verwendung ===== var cb: TControlBar := new TControlBar(); cb.SetBounds(0, 0, 500, 90); cb.SetAlign(AL_TOP); cb.SetParent(f); var tb: TToolBar := new TToolBar(); tb.SetParent(cb as TControl); cb.Bands.AddBand(tb as TControl); // Band mit der Werkzeugleiste darin cb.OnBandMove := OnLeisteVerschoben; ---- ===== Besonderheiten ===== * **Ein Band trägt genau ein Steuerelement** — meist eine [[lyx_-_programmiersprache:vega:controls:ttoolbar|TToolBar]]. Die Leiste selbst wird Kind der Bandfläche, das Band bestimmt ihre Lage. * **''HandleWidth'' ist der Griff links**, an dem gezogen wird; ''BandSpacing'' der Abstand zwischen zwei Bändern. * **''OnBandMove'' meldet die neue Reihenfolge** — der richtige Ort, um sie zu sichern, wenn die Anordnung einen Neustart überleben soll. * Für gleich hohe Bänder gibt es die Ableitung [[lyx_-_programmiersprache:vega:controls:tcoolbar|TCoolBar]]. ---- ===== Eigenschaften ===== Alle Eigenschaften, auch die geerbten. ^ Name ^ Typ ^ Bedeutung ^ Herkunft ^ | ''ComponentState'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zustand als Bitmaske (''csLoading'', ''csDestroying'' …) | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentStyle'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Stil als Bitmaske; Vorgabe ''csInheritable'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Name'' | [[lyx_-_programmiersprache:sprache:datentypen#8_zeiger|pchar]] | Name der Komponente — für ''FindComponent'' und beim Laden aus LFM | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''OwnedComponents'' | [[lyx_-_programmiersprache:vega:controls:tobjectlist|TObjectList]] | Die Komponenten, die DIESER gehoeren. Delphis Components[]. Zeigerliste, keine Kopien: TObjectList hält int64-Adressen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Owner'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | Wer diese Komponente wegraeumt. Nicht der Elternteil im Zeichenbaum — das ist bei TControl `Parent` | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Tag'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Freier Wert für eigene Zwecke; die Bibliothek fasst ihn nicht an | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''BandBorders'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Baender mit Rahmen zeichnen | eigen | | ''BandSpacing'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Abstand zwischen den Baendern | eigen | | ''Bands'' | ''TControlBands'' | Die Bänder dieser Fläche | eigen | | ''HandleWidth'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Der Griff links, an dem gezogen wird | eigen | ---- ===== Methoden ===== Alle Methoden, auch die geerbten. ^ Signatur ^ Zweck ^ Herkunft ^ | ''ClearState(bits: int64): void'' | Zustandsbits löschen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentCount(): int64'' | Anzahl der eigenen Komponenten | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentIndex(): int64'' | Delphis ComponentIndex: der eigene Platz in der Liste des Besitzers | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Components(index: int64): TComponent'' | Eigene Komponente an dieser Stelle | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Destroy(): void'' | Raeumt die eigene Liste ab, aber NICHT die Einträge — welche Komponenten ihre Besitztuemer mitnehmen, entscheidet die Ableitung über DestroyComponents() | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''DestroyComponents(): void'' | Baut die Besitztuemer ab. Von hinten, weil jedes Destroy() sich selbst aus der Liste austraegt | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''FindComponent(name: pchar): TComponent'' | Sucht unter den EIGENEN Komponenten, eine Ebene tief — wie in Delphi | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetName(): pchar'' | Namen lesen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetNamePath(): pchar'' | Der eigene Name. Delphi hängt bei Unterkomponenten den des Besitzers davor; Vega hat keine, also ist es der Name selbst | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetTag(): int64'' | ''Tag'' lesen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''HasState(bits: int64): bool'' | Sind diese Zustandsbits gesetzt | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''InitComponent(): void'' | Kein Konstruktor: lyxc vererbt Konstruktoren nicht, jede Ableitung ruft InitComponent() im eigenen Create() | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''InsertComponent(c: TComponent): void'' | Komponente in Besitz nehmen; ein bisheriger Besitzer gibt sie ab | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''RemoveComponent(c: TComponent): void'' | Komponente aus dem Besitz nehmen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetName(v: pchar): void'' | Setzt ''Name'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetState(bits: int64): void'' | Zustand setzen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetTag(v: int64): void'' | Setzt ''Tag'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''AddBand(c: TControl): TControlBand'' | Ein Control als neues Band aufnehmen. Es wird zugleich Kind — sonst wuerde es nie gezeichnet | eigen | | ''ArrangeBands(): void'' | Die Controls an ihre Plaetze setzen. Wie bei TToolBar vor jedem Zeichnen — ein Band, das dazukommt, aendert die Reihe, ohne dass sich die Größe des Behaelters aendert | eigen | | ''Band(i: int64): TControlBand'' | Band Nummer ''i'' | eigen | | ''BandAtY(y: int64): int64'' | Welches Band liegt an dieser Höhe? -1, wenn keines | eigen | | ''BandCount(): int64'' | Zahl der Bänder | eigen | | ''BandTop(i: int64): int64'' | Oberkante eines Bandes | eigen | | ''Create(): void'' | Anlegen; ''new TControlBar()'' | eigen | | ''Destroy(): void'' | Die Sammlung gibt die Baender selbst frei | eigen | | ''IndexOfControl(c: TControl): int64'' | Stelle eines Controls unter den Baendern, oder -1 | eigen | | ''MoveBand(von: int64, nach: int64): bool'' | Ein Band an eine andere Stelle setzen — das ist, was der Nutzer beim Ziehen tut, und was ein Programm zum Wiederherstellen einer gespeicherten Anordnung braucht | eigen | | ''RequiredHeight(): int64'' | Wieviel Höhe alle Baender zusammen brauchen — für AutoSize | eigen | ---- ===== Ereignisse ===== ^ Name ^ Typ ^ Wann ^ Herkunft ^ | ''OnBandMove'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TNotifyEvent]] | Ein Band wurde verschoben | eigen | ---- Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus ''vega/layoutctrls.lyx'' im Repo ''lyx-vcl''.