PBToolboxAI v5 ← Site

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 den Schlüssel der Schaltfläche (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 einzelner button.

▶ Live sehen — Demoanwendung, Kachel Button bar, mit dem Code und dieser Seite nebeneinander.


Schnellstart #

// A command bar in three lines : key, label, icon
// ("&Save" underlines the S : Alt+S fires the button from anywhere in the window)
uo_bar.of_add_button(/*key*/ "save", /*text*/ "&Save", /*image*/ "mono:img\packimages.dll:svg/samples/save")
uo_bar.of_add_button(/*key*/ "find", /*text*/ "&Find", /*image*/ "mono:img\packimages.dll:svg/samples/find")
uo_bar.of_add_button(/*key*/ "copy", /*text*/ "&Copy")

// A chord : Ctrl+S fires Save, whatever control has the focus
uo_bar.of_button(/*key*/ "save").is_shortcut = "Ctrl+S"

// 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 #

EigenschaftTypStandardBeschreibung
ib_enabledbooleantrueDie ganze Leiste aktiv oder deaktiviert. Deaktiviert antwortet keine Schaltfläche — weder Klick noch Enter, Esc, Alt+Buchstabe oder Tastenkürzel: diese Tasten bleiben beim Fenster — und die Leiste verlässt die Tab-Reihenfolge. Jede Schaltfläche behält ihr eigenes ib_enabled
ii_padding_xinteger12Linker/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_yinteger12Oberer/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_gapinteger-1Abstand 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
ii_image_sizeinteger0Größe der Schaltflächensymbole, in Pixeln; 0 = die des Designs (18)
ii_badge_sizeinteger0Höhe der Plaketten, in Pixeln — ihr Text folgt; 0 = die des Designs (16)
is_alignstringendRichtet 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_defaultstring""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. Ohne Standardschaltfläche behält die fokussierte Schaltfläche nur ihren Fokusrahmen. Eine deaktivierte oder ausgeblendete Standardschaltfläche nimmt Enter nicht an: die Taste bleibt beim Fenster — sie geht nie an die Standardschaltfläche einer ANDEREN Leiste, selbst wenn diese allein ist. 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_cancelstring""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_stylestring""Visueller Stil der Komponente (Konstanten THEME_STYLE_*); leer = der der Anwendung, bei jeder Änderung übernommen
is_theme_modestring""Helle oder dunkle Variante (Konstanten THEME_MODE_*); leer = die der Anwendung, bei jeder Änderung übernommen
il_theme_accentlong-1Akzentfarbe dieser Komponente (-1 = Akzent der Anwendung, sonst der des Designs)
is_tooltipstring""Einfacher Tooltip beim Überfahren der Komponente
is_super_tooltip_titlestring""Titel des erweiterten Tooltips (hat Vorrang vor is_tooltip)
is_super_tooltip_textstring""Text des erweiterten Tooltips (Rich-Markup zulässig)
is_super_tooltip_imagestring""Bild des erweiterten Tooltips

Methoden #

MethodeRolle
of_add_button (string as_key, string as_text {, string as_image}) → longFügt am Ende der Leiste eine Befehlsschaltfläche hinzu: ihren Schlüssel, ihre Beschriftung und wahlweise ihr Symbol (Bilddatei; mono: färbt es im Design ein). Die Beschriftung akzeptiert Rich-Markup; &Save unterstreicht das S und lässt Alt+S die Schaltfläche auslösen, && ist ein wörtliches &. Eine leere Beschriftung ergibt eine reine Symbolschaltfläche. Liefert 0, -5 bei einem leeren Schlüssel, einem Schlüssel mit / oder senkrechtem Strich, einem schon vorhandenen Schlüssel oder einer Schaltfläche ohne Bild und Text
of_insert_button (string as_key, string as_text, string as_image, integer ai_index) → longFügt eine Befehlsschaltfläche an Position ai_index ein (ab 1) und verschiebt die folgenden; hinter der letzten kommt sie ans Ende, bei 0 oder weniger an den Anfang. Liefert 0, -5 bei einem leeren Schlüssel, einem Schlüssel mit / oder senkrechtem Strich, einem schon vorhandenen Schlüssel oder einer Schaltfläche ohne Bild und Text
of_remove_button (string as_key) → longEntfernt 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) → longVerschiebt eine Schaltfläche an Position ai_index (1-basiert; hinter der letzten = am Ende, 0 oder weniger = am Anfang), ohne ihren Zustand zu verlieren. Liefert 0, -5 bei leerem Schlüssel oder einem Schlüssel, der keine Schaltfläche nennt
of_clear_buttons ( ) → longEntfernt 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_clear_shortcuts ( ) → longEntfernt das Kürzel ALLER Schaltflächen: es antwortet nicht mehr, erscheint nicht mehr im Tooltip, und is_shortcut liefert leer. Die Alt+Buchstaben bleiben. Liefert 0, -2 wenn nicht erstellt
of_focus_button (string as_key) → longSetzt 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, in einer deaktivierten Leiste oder im Demomodus nicht gezeichnet), -2 wenn nicht erzeugt
of_register_shortcut (string as_chord, string as_key) → longGibt EINER Schaltfläche ein Tastenkürzel (Ctrl+S, F5…), wie ihr is_shortcut: irgendwo im Fenster gedrückt, löst es die Schaltfläche aus (ue_clicked), auch wenn der Fokus anderswo liegt, und es erscheint in ihrem Tooltip. Es ist unabhängig vom Alt+Buchstaben der Schaltfläche. Solange die Schaltfläche nicht auslösen kann (deaktiviert, ausgeblendet, nicht gezeichnet), bleibt die Taste beim Fenster. Ein leeres Kürzel entfernt es. Auf einer Leiste benennt ein Kürzel immer eine Schaltfläche: die Form mit einem Argument oder ein Schlüssel ohne Schaltfläche liefert -5; ein Kürzel, das das Fenster nie auslösen kann (ein Buchstabe allein, Ctrl+Shift), liefert -5 und behält das vorhandene Kürzel. Liefert 0, -2 wenn nicht erstellt
of_button (string as_key) → n_pbt_buttonbar_buttonLiefert das Handle einer Schaltfläche (über ihren Schlüssel), um ihre Eigenschaften zu lesen oder zu ändern (siehe unten). Ein Schlüssel ohne Schaltfläche erhält ein gemeinsames neutrales Handle: was man ihm gibt, geht nirgendwohin. of_count, of_keys_at und of_has zählen auch die ausgeblendeten Schaltflächen

Ereignisse #

EreignisWann
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
ue_button_rclicked (string as_key, long al_x, long al_y)Rechtsklick auf EINE Schaltfläche, oder Menütaste auf der fokussierten, mit ihrem Schlüssel: der Ort, um das Menü dieser Schaltfläche zu öffnen. Eine deaktivierte Schaltfläche antwortet nicht. Es ist das einzige Ereignis dieses Rechtsklicks: ue_rclicked wird nicht zusätzlich ausgelöst; al_x, al_y: wo das Menü zu öffnen ist, in Bildschirmpixeln — der Zeiger, oder über die Tastatur (Menütaste, Umschalt+F10) die Ecke unten links der Schaltfläche; ein contextmenu öffnet sich dort unverändert (uo_menu.of_show(al_x, al_y))
ue_rclicked ( )Rechtsklick auf die Leiste AUSSERHALB jeder Schaltfläche. Ein Rechtsklick auf eine Schaltfläche löst nur ue_button_rclicked aus: ein in beiden geschriebenes Menü öffnet sich nie zweimal

Eigenschaften einer Schaltfläche (of_button) #

EigenschaftTypStandardBeschreibung
ib_enabledbooleantrueAktiviert oder deaktiviert eine Schaltfläche; deaktiviert lässt sie sich nicht anklicken und weder Enter, Esc, ihr Alt+Buchstabe noch ihr Kürzel lösen sie aus — diese Tasten bleiben beim Fenster; die Pfeiltasten überspringen sie
ib_visiblebooleantrueZeigt oder verbirgt eine Schaltfläche; verborgen behält sie ihren Platz und kehrt zurück
is_textstring""Die Beschriftung der Schaltfläche, Rich-Markup zulässig; nach dem Hinzufügen änderbar. &Save unterstreicht das S und lässt Alt+S die Schaltfläche von überall im Fenster auslösen, wie ein PowerBuilder-CommandButton; && ist ein wörtliches &. Eine Schaltfläche behält Beschriftung oder Symbol: die Beschriftung einer Schaltfläche ohne Symbol zu leeren wird abgelehnt, die Beschriftung liefert unverändert
is_imagestring""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
is_stylestringstandardDas Aussehen der Schaltfläche: standard, primary (der Akzentblock), flat (ohne Rahmen im Ruhezustand) oder danger (eine zerstörerische Aktion, in der Gefahrenfarbe des Designs) — Konstanten STYLE_*; ein unbekannter Wert liefert standard. Eine deaktivierte Schaltfläche verliert ihre Füllung
is_badgestring""Eine kleine Plakette in der Ecke der Schaltfläche: eine Zahl (3; über 99 zeigt sie 99+) oder ein kurzes Wort (New, !). "" oder 0 = keine. Ein Bildschirmleser hört sie mit dem Namen der Schaltfläche
il_badgelong0Dieselbe Plakette als Zahl (0 = keine); eine Wort-Plakette liefert hier 0
il_badge_colorlong-1Farbe der Plakette DIESER Schaltfläche; -1 = die des Designs, 0 ist Schwarz. Der Text darauf wird so gewählt, dass er lesbar bleibt
is_mnemonicstring""Der Alt+Buchstabe der Schaltfläche, wenn es nicht das & ihrer Beschriftung ist — er hat Vorrang: ein Buchstabe oder eine Ziffer, das erste Vorkommen in der Beschriftung wird unterstrichen. Leer = das & der Beschriftung. Solange die Schaltfläche nicht auslösen kann, bleibt ihr Buchstabe beim Fenster
is_shortcutstring""Ein Tasten-KÜRZEL für diese Schaltfläche — Ctrl+S, F5, Ctrl+Shift+P: irgendwo im Fenster gedrückt, löst es die Schaltfläche aus und erscheint in ihrem Tooltip (Save (Ctrl+S)). Es liefert seine kanonische Form (ctrl+s); ein Kürzel, das das Fenster nie auslösen kann, wird abgelehnt und liefert leer. Wie of_register_shortcut(chord, key). Der Alt+Buchstabe ist das & der Beschriftung oder is_mnemonic
il_back_colorlong-1Hintergrund DIESER Schaltfläche (-1 = der der Komponente, folgt dem Design)
il_text_colorlong-1Textfarbe DIESER Schaltfläche (-1 = die der Komponente)
il_back_color_hoverlong-1Hintergrund DIESER Schaltfläche beim Überfahren (-1 = der der Komponente)
il_text_color_hoverlong-1Textfarbe DIESER Schaltfläche beim Überfahren (-1 = die der Komponente)
il_accentlong-1Akzent DIESER Schaltfläche: er färbt ihre Plakette und, wenn sie die Standardschaltfläche ist (oder im Stil primary), ihre Füllung (-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.

MitgliederRolleBeschrieben in
of_count · of_keys_at · of_hasDurchlaufen, was die Komponente enthält3.2 Die Items
of_resetDie Komponente zurücksetzen3.6 Eine Komponente zurücksetzen: of_reset()
of_register_shortcut · of_clear_shortcutsTastenkürzel der Komponente3.5 Tastenkombinationen
of_is_created · of_is_ready · of_get_last_errorOb sie entstanden ist, ob sie bereit ist, was fehlschlug3.7 Diagnose
of_save_as_png · of_save_as_jpgDie Darstellung als Bild exportieren3.8 Die Darstellung als Bild exportieren
of_set_redrawÄnderungen zu einem einzigen Neuzeichnen bündeln3.10 Best Practices
of_preload_iconsSymbole ohne VerzögerungSofortige Anzeige: of_icon
of_set_translationEine Beschriftung der Komponente übersetzen5.2 Eine Beschriftung anpassen: of_set_translation
of_focus_webviewDer Komponente den Fokus geben6.4 Tastatur und Fokus
of_print · of_print_to_pdfDrucken oder ein PDF schreiben6.9 Drucken
of_set_property · of_get_property · of_component_nameEine Eigenschaft über ihren Namen steuern3.1 Die Eigenschaften-Engine
is_accessible_name · is_accessible_descriptionName und Beschreibung, die ein Bildschirmleser sagt3.4 Optionale Eigenschaften und Events

← Komponentenreferenz · Inhalt des Handbuchs