buttonbar — u_pbt_buttonbar #
← Komponentenreferenz · Inhalt des Handbuchs
buttonbar ordnet eine Reihe von Befehlsschaltflächen — Symbol, Beschriftung oder beides — in einer Komponente an. Ein Klick meldet die Button-Id (
ue_clicked); jeder Button wird über ein Handle (of_button) gesteuert, um ihn zu deaktivieren, zu färben oder auszublenden. Die zu bevorzugende Komponente, sobald es mehrere Schaltflächen gibt: ein WebView2 für die ganze Leiste statt N einzelnerbutton.
▶ Live sehen — Demoanwendung, Kachel Button bar, mit dem Code und dieser Seite nebeneinander.
Schnellstart #
// A command bar in three lines
uo_bar.of_add_button(/*key*/ "save", /*image_file*/ "mono:img\packimages.dll:svg/samples/save", /*text*/ "Save")
uo_bar.of_add_button(/*key*/ "find", /*image_file*/ "mono:img\packimages.dll:svg/samples/find", /*text*/ "Find")
uo_bar.of_add_button(/*key*/ "copy", /*image_file*/ "", /*text*/ "Copy") // no icon
// Grey out a button
uo_bar.of_button(/*key*/ "copy").ib_enabled = false
// React : ue_clicked carries the button key
// (in the ue_clicked event of the component)
CHOOSE CASE as_key
CASE "save" ; wf_save()
CASE "find" ; wf_find()
END CHOOSE
Eigenschaften #
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
ii_padding_x | integer | 12 | Linker/rechter Abstand der Leiste, in Pixeln: der Raum vor der ersten und nach der letzten Schaltfläche. 0 drückt die Schaltflächen an die Ränder; -1 = der des Designs |
ii_padding_y | integer | 12 | Oberer/unterer Abstand der Leiste, in Pixeln. Eine Schaltfläche FÜLLT die Höhe der Leiste: dieser Abstand bestimmt also die Höhe der Schaltflächen (höhere Leiste oder kleinerer Abstand = höhere Schaltflächen). Standard 12; -1 = der des Designs |
ii_gap | integer | -1 | Abstand ZWISCHEN zwei Schaltflächen, in Pixeln. -1 (Standard) = der des Designs. 0 fügt die Schaltflächen zusammen, mit einer Trennlinie, wenn das Design eine hat |
is_align | string | end | Richtet die Reihe aus: start (links), center, end (rechts, Standard, wie ein Dialog) oder justify (gleich breite Schaltflächen über die ganze Breite). Logische (RTL-fähige) Werte — Konstanten ALIGN_* |
is_default | string | "" | Schlüssel der Standard-Schaltfläche — die primäre Aktion, mit dem Akzent gefärbt, die Enter auslöst (wie das OK eines Dialogs). Hat eine Schaltfläche der Leiste den Tastaturfokus, löst Enter DIESE Schaltfläche aus, die dann das Standard-Aussehen trägt (Windows-Konvention); is_default liefert weiterhin den gesetzten Schlüssel. Eine deaktivierte oder ausgeblendete Standardschaltfläche nimmt Enter nicht an: die Taste bleibt beim Fenster. Haben zwei Leisten desselben Fensters eine Standardschaltfläche (zwei MDI-Blätter, zwei Bereiche), geht Enter an die auf der Seite des Fokus. Die Rolle geht mit ihrer Schaltfläche: sie zu entfernen oder die Leiste zu leeren, leert is_default. Leer = keine; immer nur eine Standardschaltfläche |
is_cancel | string | "" | Schlüssel der Abbrechen-Schaltfläche — diejenige, die Esc auslöst (wie das Abbrechen eines Dialogs). Deaktiviert oder ausgeblendet nimmt sie Esc nicht an. Die Rolle geht mit ihrer Schaltfläche: sie zu entfernen oder die Leiste zu leeren, leert is_cancel. Leer = keine; immer nur eine Abbrechen-Schaltfläche |
is_theme_style | string | "" | Visueller Stil der Komponente (Konstanten THEME_STYLE_*); leer = der der Anwendung, bei jeder Änderung übernommen |
is_theme_mode | string | "" | Helle oder dunkle Variante (Konstanten THEME_MODE_*); leer = die der Anwendung, bei jeder Änderung übernommen |
il_theme_accent | long | -1 | Akzentfarbe dieser Komponente (-1 = Akzent der Anwendung, sonst der des Designs) |
is_tooltip | string | "" | Einfacher Tooltip beim Überfahren der Komponente |
is_super_tooltip_title | string | "" | Titel des erweiterten Tooltips (hat Vorrang vor is_tooltip) |
is_super_tooltip_text | string | "" | Text des erweiterten Tooltips (Rich-Markup zulässig) |
is_super_tooltip_image | string | "" | Bild des erweiterten Tooltips |
Methoden #
| Methode | Rolle |
|---|---|
of_add_button (string as_key, string as_image_file, string as_text) → long | Fügt am Ende der Leiste eine Befehlsschaltfläche hinzu (Id, Bilddatei, Beschriftung). mono: färbt das Bild aufs Design um; leere Beschriftung ergibt eine Nur-Symbol-Schaltfläche. Liefert 0, -5 bei leerem Schlüssel, einem Schlüssel mit / oder einem senkrechten Strich, einem schon vorhandenen Schlüssel oder ohne Bild und Text |
of_insert_button (string as_key, integer ai_index, string as_image_file, string as_text) → long | Fügt eine Befehlsschaltfläche an Position ai_index (1-basiert) ein und verschiebt die übrigen. Liefert 0, -5 bei leerem Schlüssel, einem Schlüssel mit / oder einem senkrechten Strich, einem schon vorhandenen Schlüssel oder ohne Bild und Text |
of_remove_button (string as_key) → long | Entfernt eine Schaltfläche über ihren Schlüssel; die übrigen behalten ihren Zustand. Ihr Alt+Buchstabe, die Kürzel, die die Anwendung ihr gab, ihre Standard-/Abbrechen-Rolle, ihre Farben und ihr Tooltip gehen mit. Liefert 0, -5 bei leerem Schlüssel oder einem Schlüssel, der keine Schaltfläche nennt |
of_move_button (string as_key, integer ai_index) → long | Verschiebt eine Schaltfläche an Position ai_index (1-basiert), ohne ihren Zustand zu verlieren. Liefert 0, -5 bei leerem Schlüssel oder einem Schlüssel, der keine Schaltfläche nennt |
of_clear_buttons ( ) → long | Entfernt alle Schaltflächen der Leiste, samt Alt+Buchstaben, den Kürzeln, die die Anwendung ihnen gab, den Standard-/Abbrechen-Rollen, Farben und Tooltips. Liefert 0, -2 wenn nicht erzeugt |
of_focus_button (string as_key) → long | Setzt den Tastaturfokus auf EINE Schaltfläche — Nein statt Ja bei einer zerstörenden Frage, damit Enter mit Nein antwortet. Liefert 0, -5 bei leerem Schlüssel oder einem, der keine Schaltfläche nennt, -4 wenn die Schaltfläche ihn nicht annehmen kann (deaktiviert, ausgeblendet oder im Demomodus nicht gezeichnet), -2 wenn nicht erzeugt |
of_register_shortcut (string as_chord, string as_key) → long | Gibt EINER Schaltfläche ein Tastenkürzel (Ctrl+S, F5…): irgendwo im Fenster gedrückt, löst es die Schaltfläche aus (ue_clicked), auch wenn der Fokus woanders liegt. Es ist unabhängig vom Alt+Buchstaben der Schaltfläche: sie zu deaktivieren, ihren Buchstaben zu ändern oder sie wieder zu aktivieren, berührt es nie. Ein leeres Kürzel entfernt es. Auf einer Leiste nennt ein Kürzel immer eine Schaltfläche: die Form mit einem Argument oder ein Schlüssel, der keine Schaltfläche nennt, liefert -5. Liefert 0, -2 wenn nicht erzeugt |
of_button (string as_key) → n_pbt_buttonbar_button | Liefert das Handle einer Schaltfläche (per Id), um ihre Eigenschaften zu lesen oder zu ändern (siehe unten) |
Ereignisse #
| Ereignis | Wann |
|---|---|
ue_clicked (string as_key) | Eine Schaltfläche wurde benutzt: ein Klick, Enter (die Standardschaltfläche oder die fokussierte), Esc (die Abbrechen-Schaltfläche), ihr Alt+Buchstabe oder ein auf ihr registriertes Kürzel. Ihr Schlüssel wird übergeben: eine Anwendung, die Abbrechen verdrahtet, muss es auch über Esc erwarten. Eine deaktivierte Schaltfläche sendet nichts |
Eigenschaften einer Schaltfläche (of_button) #
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
ib_enabled | boolean | true | Aktiviert oder deaktiviert eine Schaltfläche; deaktiviert ist sie nicht klickbar und wird weder von Enter, Esc noch ihrem Kürzel ausgelöst |
ib_visible | boolean | true | Zeigt oder verbirgt eine Schaltfläche; verborgen behält sie ihren Platz und kehrt zurück |
is_text | string | "" | Beschriftung der Schaltfläche; nach dem Hinzufügen änderbar. Eine Schaltfläche behält eine Beschriftung oder ein Symbol: die Beschriftung einer Schaltfläche ohne Symbol zu leeren wird abgelehnt, und die Beschriftung liest sich unverändert |
is_image | string | "" | Symbol der Schaltfläche (Bilddatei; mono: folgt dem Design); nach dem Hinzufügen änderbar. Das Symbol einer Schaltfläche ohne Beschriftung zu leeren wird abgelehnt. Eine reine Symbolschaltfläche wird einem Bildschirmleser über ihren Tooltip (is_tooltip) angesagt, sonst über ihren Schlüssel |
il_badge | long | 0 | Kleines Zähler-Badge in der Ecke der Schaltfläche (0 = keins) |
is_shortcut | string | "" | Mnemonik dieser Schaltfläche: Alt+der Buchstabe löst sie aus, von überall im Fenster, und der Buchstabe wird in der Beschriftung unterstrichen. Ein Buchstabe (der erste wird verwendet); leer = keine. Ein ausdrücklich für dieselbe Taste registriertes Kürzel (of_register_shortcut) geht dem Buchstaben vor; ein PB-Menü mit demselben Buchstaben verliert ihn, solange die Schaltfläche auslösen kann. Solange die Schaltfläche deaktiviert, ausgeblendet oder im Demomodus nicht gezeichnet ist, bleibt ihr Buchstabe dem Fenster |
il_back_color | long | -1 | Hintergrund DIESER Schaltfläche (-1 = der der Komponente, folgt dem Design) |
il_text_color | long | -1 | Textfarbe DIESER Schaltfläche (-1 = die der Komponente) |
il_back_color_hover | long | -1 | Hintergrund DIESER Schaltfläche beim Überfahren (-1 = der der Komponente) |
il_text_color_hover | long | -1 | Textfarbe DIESER Schaltfläche beim Überfahren (-1 = die der Komponente) |
il_accent | long | -1 | Akzent DIESER Schaltfläche (-1 = Akzent der Komponente) |
Vom gemeinsamen Sockel geerbt #
Diese Mitglieder gibt es bei jeder visuellen Komponente — sie sind nicht dieser eigen. Sie werden einmal in den übergreifenden Kapiteln beschrieben; diese Tabelle sagt nur, wo man sie liest.
| Mitglieder | Rolle | Beschrieben in |
|---|---|---|
of_count · of_keys_at · of_has | Durchlaufen, was die Komponente enthält | 3.2 Die Items |
of_reset | Die Komponente zurücksetzen | 3.6 Eine Komponente zurücksetzen: of_reset() |
of_register_shortcut · of_clear_shortcuts | Tastenkürzel der Komponente | 3.5 Tastenkombinationen |
of_is_created · of_is_ready · of_get_last_error | Ob sie entstanden ist, ob sie bereit ist, was fehlschlug | 3.7 Diagnose |
of_save_as_png · of_save_as_jpg | Die Darstellung als Bild exportieren | 3.8 Die Darstellung als Bild exportieren |
of_set_redraw | Änderungen zu einem einzigen Neuzeichnen bündeln | 3.10 Best Practices |
of_preload_icons | Symbole ohne Verzögerung | Sofortige Anzeige: of_icon |
of_set_translation | Eine Beschriftung der Komponente übersetzen | 5.2 Eine Beschriftung anpassen: of_set_translation |
of_focus_webview | Der Komponente den Fokus geben | 6.4 Tastatur und Fokus |
of_print · of_print_to_pdf | Drucken oder ein PDF schreiben | 6.9 Drucken |
of_set_property · of_get_property · of_component_name | Eine Eigenschaft über ihren Namen steuern | 3.1 Die Eigenschaften-Engine |