menubar — u_pbt_menubar #
← Komponentenreferenz · Inhalt des Leitfadens
Anwendungsmenüleiste: Menüs, Untermenüs, abhakbare Einträge, Trennlinien, Symbole und Tastenkürzel — alles von der Bibliothek gezeichnet, ohne Windows-Menü.
▶ Live ansehen — Demoanwendung, Kachel Menu bar: die Vorschau, der zugehörige Code und diese Seite, nebeneinander.
Auf einen Blick #
| Userobject | u_pbt_menubar |
| Item-Klasse | n_pbt_menubar_item (ein Eintrag) · n_pbt_menubar_menu (ein Menü der Leiste) |
| Dient zu | Ihrem Fenster die Menüleiste der Anwendung geben, im selben Thema wie alles andere |
| Prinzip | Sie deklarieren die Menüs, dann ihre Einträge; jeder Eintrag wird über seine Adresse menu/id wiedergefunden |
Schnellstart #
// Open-Event des Fensters
uo_menus.of_add_menu(/*key*/ "file", /*text*/ "Datei")
uo_menus.of_add_item(/*keys*/ "file/open", /*text*/ "Oeffnen")
uo_menus.of_add_item(/*keys*/ "file/save", /*text*/ "Speichern")
// event ue_item_selected : (string as_keys)
choose case as_keys
case "file/open"; of_open_document()
case "file/save"; of_save_document()
end choose
Das Modell: drei Ebenen, ein Schlüssel je Ebene #
Eine Menüleiste hat drei Ebenen, und jede wird über ihren Schlüssel angesprochen:
| Ebene | Hinzugefügt durch | Schlüssel |
|---|---|---|
| Das Menü der Leiste | of_add_menu | sein Schlüssel, file |
| Der Eintrag eines Menüs | of_add_item | die Adresse menu/eintrag, file/open |
| Der Untereintrag eines Eintrags | of_add_item | die Adresse menu/eintrag/untereintrag, file/export/pdf — so tief wie nötig |
Ein Schlüssel ist nur unter seinem Elternelement eindeutig: deshalb wird ein Eintrag immer über seine vollständige Adresse bezeichnet, das Menü zuerst — nie über seinen Schlüssel allein. Zwei Menüs können also jeweils ihren eigenen Eintrag open haben und zwei Untermenüs ihr eigenes pdf (file/export/pdf, file/print/pdf), ohne sich zu stören. Ein Schlüssel enthält weder / noch |, ist nicht leer und beginnt nicht mit __: die Hinzufüge-Methoden lehnen ihn ab (-5), ebenso eine bereits vergebene Adresse oder ein nie hinzugefügtes Elternelement.
Eine Trennlinie hat keinen Schlüssel:
of_add_separatorzieht einen Strich am Ende eines Menüs (file) oder der Kaskade eines Eintrags (file/export), und danach gibt es nichts zurückzulesen.
Eigenschaften #
| Eigenschaft | Typ | Standard | Rolle |
|---|---|---|---|
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 erlaubt) |
is_super_tooltip_image | string | "" | Bild des erweiterten Tooltips |
ib_wrap | boolean | false | false (Standard): Die Leiste bleibt auf einer Zeile; die Titel, die nicht passen, wandern vom Ende her in das Dropdown eines Chevrons an ihrem Ende (ihre Einträge als Kaskaden), und die Höhe ändert sich nicht mehr. true: Die Leiste bricht um und meldet ihre neue Höhe (ue_auto_height) — wie vor der 4.0 |
ib_track_hover | boolean | false | Abonnement für ue_item_hover: ohne es melden die Dropdowns nicht einmal den überfahrenen Eintrag — ein Event, das bei jeder Zeigerbewegung ausgelöst wird, geht nur an eine Anwendung, die es verlangt hat |
Eigenschaften eines Eintrags — n_pbt_menubar_item #
Über of_item(adresse) erhalten — of_item("file/export/pdf"). Eine Adresse mit einer einzigen Ebene bezeichnet ein Menü, keinen Eintrag: ihr Handle ändert nichts, verwenden Sie of_menu.
| Eigenschaft | Typ | Standard | Rolle |
|---|---|---|---|
is_text | string | — | Ändert die Beschriftung des Eintrags, im laufenden Betrieb |
ib_enabled | boolean | true | Eintrag aktiv; ein ausgegrauter Eintrag reagiert nicht mehr auf Klicks |
ib_visible | boolean | true | Eintrag aus der Liste genommen, ohne entfernt zu werden — Untermenü und Tastenkürzel ruhen mit ihm; er behält seinen Schlüssel und kommt unverändert zurück. Ein ruhendes Kürzel behält seine Tastenkombination: sie erreicht auch Ihre Anwendung nicht; is_shortcut = "" gibt sie ihr zurück |
is_shortcut | string | "" | Die angezeigte Tastenkombination rechts vom Eintrag (Ctrl+S) — und aktiv: sie löst ue_item_selected für diesen Eintrag aus, wo auch immer der Fokus liegt. In einem Menü lernt man die Kürzel einer Anwendung; eine angezeigte Taste, die nichts tut, lehrt das Falsche. Tasten: ein Buchstabe, eine Ziffer, F1 bis F24, Enter, Esc, Del, Insert, Home, End, PageUp, PageDown, und mit Strg oder Alt auch +, -, ,, ., die Pfeiltasten (Left…), Space, Tab, Backspace (Ctrl++ zum Zoomen). Ein Kürzel gehört auf ein Blatt: auf einem Eintrag, der eine Kaskade öffnet, wird es weder angezeigt noch ausgelöst. Ein leerer Text nimmt beides zurück |
ib_checked | boolean | false | Häkchen vor dem Eintrag — für eine Option, die an- und ausgeht |
is_image | string | "" | Das Symbol des Eintrags, live geändert: der Eintrag behält seinen Platz in der Liste. Dieselben Pfade wie bei of_add_item (mono:, tint:, datei.dll:NAME); ein leerer Text entfernt es |
is_group | string | "" | Macht den Eintrag zu einem Optionseintrag: die Einträge einer Gruppe unter demselben Elternteil schließen sich aus — einen abzuhaken (ib_checked = true oder die Wahl des Benutzers) hakt die anderen ab, und ein runder Punkt ersetzt das Häkchen. ue_item_selected sagt weiterhin, welcher gewählt wurde. Ein leerer Text macht ihn wieder zu einem gewöhnlichen Eintrag |
il_accent | long | -1 | Akzent dieses Eintrags: sein Häkchen und sein Rand unter dem Zeiger (-1 = der des Themas) |
il_back_color | long | -1 | Hintergrund dieses Eintrags im Aufklappmenü, in Ruhe |
il_text_color | long | -1 | Textfarbe dieses Eintrags |
il_back_color_hover | long | -1 | Hintergrund dieses Eintrags unter dem Zeiger |
il_text_color_hover | long | -1 | Textfarbe dieses Eintrags unter dem Zeiger |
is_tooltip | string | "" | Gespeichert und zurücklesbar, aber ein Eintrag des Aufklappmenüs zeigt keinen Tooltip: das native Aufklappmenü hat keinen. Nur die Menütitel zeigen ihren (of_menu) |
is_super_tooltip_title | string | "" | Titel seines erweiterten Tooltips — gespeichert, nicht angezeigt (siehe is_tooltip) |
is_super_tooltip_text | string | "" | Text seines erweiterten Tooltips — gespeichert, nicht angezeigt |
is_super_tooltip_image | string | "" | Bild seines erweiterten Tooltips — gespeichert, nicht angezeigt |
Eigenschaften eines Menüs — n_pbt_menubar_menu #
Über of_menu(schluessel) erhalten — of_menu("file"). Farben und Tooltip erscheinen auf dem Titel des Menüs in der Leiste.
| Eigenschaft | Typ | Standard | Rolle |
|---|---|---|---|
is_text | string | — | Beschriftung des Menüs, & inklusive (Mnemonik), geändert ohne die Leiste neu aufzubauen |
ib_enabled | boolean | true | Ausgegrautes Menü: es öffnet sich nicht mehr, seine Einträge und ihre Tastenkürzel mit ihm; die Tastatur überspringt es |
ib_visible | boolean | true | Das Menü verlässt die Leiste — Einträge und Tastenkürzel schlafen mit ihm — und kehrt unverändert zurück. Ruhende Kürzel behalten ihre Tastenkombination: sie erreicht auch Ihre Anwendung nicht |
is_align | string | "start" | u_pbt_menubar.ALIGN_END setzt das Menü ans Ende der Leiste, wie Hilfe — mit denen, die ihm in derselben Ausrichtung folgen, dahinter; ALIGN_START (Standard) stellt es wieder zu den anderen. Logisch: Das Ende ist bei einem Layout von rechts nach links die linke Seite. Mit dem Chevron klappen die Titel am Ende zuerst ein |
il_accent | long | -1 | Akzent dieses Menüs: ein Strich unter seinem Titel, solange sein Aufklappmenü offen ist (-1 = keiner) |
il_back_color | long | -1 | Hintergrund seines Titels, in Ruhe |
il_text_color | long | -1 | Textfarbe seines Titels, in Ruhe |
il_back_color_hover | long | -1 | Hintergrund seines Titels unter dem Zeiger oder geöffnet |
il_text_color_hover | long | -1 | Textfarbe seines Titels unter dem Zeiger oder geöffnet |
is_tooltip | string | "" | Tooltip, wenn der Zeiger auf seinem Titel ruht |
is_super_tooltip_title | string | "" | Titel des erweiterten Tooltips seines Titels |
is_super_tooltip_text | string | "" | Text dieses erweiterten Tooltips (Rich-Markup erlaubt) |
is_super_tooltip_image | string | "" | Bild dieses erweiterten Tooltips |
Methoden #
| Methode | Rolle |
|---|---|
of_add_menu (string as_key, string as_text) | Fügt der Leiste ein Menü hinzu. Liefert 0 nach der Anwendung, -5 wenn der Schlüssel abgelehnt wird (leer, mit / oder senkrechtem Strich, beginnt mit __ oder bereits vergeben), -2 wenn die Komponente nicht erzeugt ist |
of_add_item (string as_keys, string as_text) | Fügt einen Eintrag an seiner Adresse hinzu: file/open im Menü File, file/export/pdf unter dem Eintrag Export, so tief wie nötig. Liefert 0 nach der Anwendung, -5 wenn die Adresse abgelehnt wird: weniger als zwei Ebenen, eine leere Ebene, ein Schlüssel mit / oder senkrechtem Strich oder beginnend mit __, ein nie hinzugefügtes Menü oder Elternelement, oder eine bereits vergebene Adresse. -2 wenn die Komponente nicht erzeugt ist |
of_add_item (string as_keys, string as_text, string as_image, boolean ab_checked) | Dasselbe, mit Symbol und Häkchen. Um den Eintrag jetzt oder später auszugrauen, über sein Handle: of_item(adresse).ib_enabled = false. Liefert 0 nach der Anwendung, -5 wenn die Adresse abgelehnt wird: weniger als zwei Ebenen, eine leere Ebene, ein Schlüssel mit / oder senkrechtem Strich oder beginnend mit __, ein nie hinzugefügtes Menü oder Elternelement, oder eine bereits vergebene Adresse. -2 wenn die Komponente nicht erzeugt ist |
of_add_separator (string as_keys) | Zieht eine Trennlinie am Ende eines Menüs (file) oder der Kaskade eines Eintrags (file/export). Liefert 0 nach der Anwendung, -5 wenn an dieser Adresse nichts hinzugefügt wurde, -2 wenn die Komponente nicht erzeugt ist |
of_add_header (string as_keys, string as_text) → long | Setzt eine Abschnittsüberschrift an das Ende eines Menüs (view) oder der Kaskade eines Eintrags (view/panels): eine Titelzeile über den folgenden Einträgen, bis zur nächsten Überschrift oder Trennlinie. Sie ist kein Eintrag — nie gewählt, nie von of_count gezählt, auch nicht im Demo-Limit — und wird nicht gezeichnet, wenn alle Einträge darunter ausgeblendet sind. Liefert 0 nach dem Hinzufügen, -5, wenn an dieser Adresse nichts erzeugt wurde, -2, wenn die Komponente nicht erzeugt ist |
of_item (string as_keys) → n_pbt_menubar_item | Handle eines Eintrags, über seine Adresse — of_item("file/export/pdf") —, um seine Eigenschaften zu lesen oder zu setzen. Genau das liefert ue_item_selected: das Argument geht unverändert hier hinein. Nie der Schlüssel allein: zwei Untermenüs können jeweils ihr pdf haben, und nur die Adresse unterscheidet sie. Eine Adresse mit einer Ebene bezeichnet ein Menü: ihr Handle ändert nichts, verwenden Sie of_menu |
of_menu (string as_key) → n_pbt_menubar_menu | Handle eines Menüs der obersten Ebene, um es umzubenennen oder auszugrauen. of_add_menu konnte das nur bei der Erstellung: Admin beim Abmelden auszugrauen hieß, die ganze Leiste neu aufzubauen; ib_visible nimmt es aus der Leiste, Einträge und Tastenkürzel ruhen mit ihm |
of_remove_item (string as_keys) → long | Entfernt einen Eintrag an seiner Adresse (file/open, file/export/pdf) — seine Kaskade mit ihm; die anderen bleiben. Seine Handles werden freigegeben und sein Tastenkürzel entschärft: die Taste gehört wieder Ihrer Anwendung. Ohne sie gab es nur of_clear, das alles leert — das häufigste dynamische Menü, eine Liste zuletzt geöffneter Dateien, zwang dazu, bei jedem geöffneten Dokument die ganze Leiste abzureißen. Liefert 0 nach der Anwendung, -5 wenn an dieser Adresse kein Eintrag lebt, -2 wenn die Komponente nicht erzeugt ist |
of_remove_menu (string as_key) → long | Entfernt ein Menü der obersten Ebene, seine Einträge mit ihm — Handles freigegeben, Tastenkürzel entschärft. Die Leiste wird neu gezeichnet und ihre Höhe neu gemeldet. Liefert 0 nach der Anwendung, -5 für ein nie hinzugefügtes Menü, -2 wenn die Komponente nicht erzeugt ist |
of_clear ( ) | Leert die Leiste — Menüs und Einträge; ihre Handles werden freigegeben und die Tastenkürzel der Einträge entschärft. Liefert 0 nach der Anwendung, -2 wenn die Komponente nicht erzeugt ist |
of_reset ( ) | Leert die Leiste und setzt alle Eigenschaften auf ihren Standard zurück. Liefert 0 nach der Anwendung, -2 wenn die Komponente nicht erzeugt ist |
of_set_redraw (boolean) | Fasst eine Folge von Änderungen zu einer einzigen Darstellung zusammen. Liefert 0 nach der Anwendung, -2 wenn die Komponente nicht erzeugt ist |
of_save_as_png (string) · of_save_as_jpg (string) | Exportiert die Darstellung als Bild. Liefert 0 nach dem Schreiben des Bildes, -4 wenn das Schreiben fehlschlägt, -2 wenn die Komponente nicht erzeugt ist |
Events #
| Event | Ausgelöst, wenn |
|---|---|
ue_menu_opening (string as_key) | Wird ausgelöst, wenn sich ein Menü der obersten Ebene gleich öffnet — und das Aufklappmenü wartet: es öffnet sich erst, wenn das Ereignis zurückgekehrt ist. Aktivieren, grauen Sie hier seine Einträge aus oder füllen Sie sie: die Änderung ist bei diesem Öffnen sichtbar, nicht beim nächsten. Ohne ihn musste die ganze Leiste ständig mit dem Anwendungszustand mitgehalten werden, oder sie zeigte Einträge, die lügen |
ue_menu_closed (string as_key) | Das Dropdown eines Menüs der obersten Ebene wurde ohne Auswahl geschlossen: vom Benutzer (Klick daneben, Esc oder Gleiten zum Nachbarmenü) oder von Ihrem Code, der das offene Menü entfernt, leert, ausblendet oder deaktiviert (of_remove_menu, of_clear, ib_visible, ib_enabled) — ein Befehl löst es ebenfalls aus. Machen Sie hier rückgängig, was ue_menu_opening vorbereitet hat (eine Vorschau, eine Auswahl). Eine Auswahl löst stattdessen ue_item_selected aus, und of_reset löst nichts aus |
ue_item_selected (string as_keys) | Der Benutzer hat einen Eintrag gewählt oder sein Tastenkürzel gedrückt. as_keys ist seine Adresse, das Menü zuerst — file/open, file/export/pdf: der Schlüssel allein sagt nicht, aus welchem Untermenü er kommt, und zwei Untermenüs können jeweils ihren eigenen haben. Genau dieser Text geht unverändert an of_item zurück. Ein Eintrag, der ausgegraut, ausgeblendet oder entfernt wurde, während sein Aufklappmenü offen war, löst nichts aus |
ue_item_hover (string as_keys) | Mit ib_track_hover = true: der Eintrag unter dem Zeiger oder der Tastatur in einem offenen Dropdown, mit seiner Adresse (file/export/pdf) — auch ein ausgegrauter Eintrag, seine Hilfe kann sagen, warum. Einmal je Eintrag ausgelöst, dann mit einer leeren Adresse beim Schließen des Dropdowns (vor ue_item_selected bei einer Auswahl): Schreiben Sie den Hilfetext einer Statusleiste und leeren Sie ihn dann |
ue_auto_height (long al_height) | Die Leiste meldet die Höhe, die sie braucht — verschieben Sie, was darunter liegt |
ue_ready ( ) | Die Komponente ist geladen; alles zuvor Gesendete wurde nachgeholt |
ue_runtime_missing ( ) | Die WebView2-Laufzeit fehlt: die Komponente bleibt leer |
ue_bg_color (long al_color) | Die Komponente hat ihre Themenhintergrundfarbe berechnet; das Userobject hat sie bereits übernommen (backcolor) |
Standardmäßig eine Zeile. Die Titel, die nicht passen, wandern in den Chevron am Ende der Leiste (
ib_wrap = false, der Standard): Die Höhe bleibt die einer Zeile undue_auto_heightwird einmal ausgelöst. Mitib_wrap = truebricht die Leiste um: Sie scrollt nie, ihre Höhe folgt den Zeilen undue_auto_heightsagt Ihnen bei jeder Breitenänderung, um wie viel.
Über die Tastatur #
| Taste | Wirkung |
|---|---|
| Alt · F10 | Gibt der Leiste die Tastatur und unterstreicht die Buchstaben der Menüs, wie in jeder Windows-Anwendung; ein zweiter Druck gibt sie zurück |
| » | Der Chevron der Titel, die nicht passen: Die Pfeiltasten halten darauf wie auf einem Titel, Eingabe oder Unten öffnet die Liste der verborgenen Menüs, und Alt + der Buchstabe eines verborgenen Menüs öffnet dieses Menü vom Chevron aus |
| Alt + Buchstabe | Öffnet das Menü dieses Buchstabens (&Datei) von jedem Steuerelement des Fensters aus — einem Feld, einem DataWindow. Ein von Ihrer Anwendung registriertes Alt+Buchstabe-Kürzel hat Vorrang. Zwei Menüs auf demselben Buchstaben: der Balken wandert von einem zum anderen, Eingabe öffnet. Ein Buchstabe mit Akzent oder aus einer nicht lateinischen Schrift wird wie auf der Tastatur getippt (&Überblick: Alt + die Taste des Ü) |
| Pfeiltasten | Durchlaufen die Menüs und ihre Einträge und überspringen ausgegraute Menüs; rechts öffnet einen Untereintrag, links geht zurück. Bei Schreibrichtung von rechts nach links (RTL) dreht sich alles um: auf der Leiste, im Dropdown (am rechten Rand seines Titels ausgerichtet) und in den Kaskaden, die sich nach links öffnen — links öffnet, rechts geht zurück |
| Eingabe | In einem Dropdown: wählt den hervorgehobenen Eintrag (ue_item_selected). Auf einem Titel der Leiste öffnen Eingabe, Leertaste oder Pfeil nach unten das Menü. Die Leertaste wählt keinen Eintrag — auch die Regel von Windows |
| Esc | Schließt das offene Menü und gibt dann den Fokus an das Steuerelement zurück, das ihn hatte |
Eine Menüleiste behält nie den Fokus. Ein Klick auf einen Titel, dann eine Auswahl mit der Maus: die Tastatur kehrt bevor
ue_item_selectedausgelöst wird zu dem Steuerelement zurück, in dem getippt wurde.Bearbeiten > Einfügenfügt also in das bearbeitete Feld ein, undGetFocus()nennt es im Ereignis.
Beispiele #
Eine vollständige Menüleiste #
// Das Zeichnen waehrend des Aufbaus anhalten
uo_menus.of_set_redraw(/*on*/ false)
// Das Menue Datei, mit einem Symbol auf Oeffnen und einem Strich vor Beenden
uo_menus.of_add_menu(/*key*/ "file", /*text*/ "&Datei")
uo_menus.of_add_item(/*keys*/ "file/open", /*text*/ "&Oeffnen...", /*image*/ "mono:img\packimages.dll:svg/samples/folder-open", /*checked*/ false)
uo_menus.of_add_separator(/*keys*/ "file")
uo_menus.of_add_item(/*keys*/ "file/quit", /*text*/ "&Beenden")
// Ein Untermenue: Exportieren, dann seine beiden Formate
uo_menus.of_add_item(/*keys*/ "file/export", /*text*/ "&Exportieren")
uo_menus.of_add_item(/*keys*/ "file/export/csv", /*text*/ "CSV")
uo_menus.of_add_item(/*keys*/ "file/export/pdf", /*text*/ "PDF")
// Das Menue Ansicht: eine Option, die sich abhaken laesst
uo_menus.of_add_menu(/*key*/ "view", /*text*/ "&Ansicht")
uo_menus.of_add_item(/*keys*/ "view/grid", /*text*/ "&Raster", /*image*/ "", /*checked*/ true)
// Ein einziges Neuzeichnen, mit allem
uo_menus.of_set_redraw(/*on*/ true)
Abhaken, entfernen, ausgrauen #
// Der Benutzer hat die Rasteranzeige umgeschaltet
uo_menus.of_item(/*keys*/ "view/grid").ib_checked = not uo_menus.of_item(/*keys*/ "view/grid").ib_checked
// Ein Eintrag, der keinen Sinn mehr hat, wird ausgegraut, nicht entfernt:
// der Benutzer muss sehen koennen, dass es ihn gibt
uo_menus.of_item(/*keys*/ "file/save").ib_enabled = false
Optionseinträge und ein Zoom-Kürzel #
// Zwei OPTIONS-Eintraege: einen abzuhaken hakt den anderen ab, ein runder Punkt ersetzt das Haekchen
uo_menus.of_add_item(/*keys*/ "view/small", /*text*/ "&Kleine Symbole")
uo_menus.of_add_item(/*keys*/ "view/large", /*text*/ "&Grosse Symbole")
uo_menus.of_item(/*keys*/ "view/small").is_group = "size"
uo_menus.of_item(/*keys*/ "view/large").is_group = "size"
uo_menus.of_item(/*keys*/ "view/large").ib_checked = true
// Zoom: Ctrl++ wird angezeigt UND ist aktiv, wo auch immer der Fokus liegt
uo_menus.of_add_item(/*keys*/ "view/zoomin", /*text*/ "&Vergroessern")
uo_menus.of_item(/*keys*/ "view/zoomin").is_shortcut = "Ctrl++"
Die Leiste neu aufbauen #
// Arbeitsbereich wechseln: leeren und neu aufbauen
// of_set_redraw vermeidet ein Neuzeichnen bei jeder Zeile
uo_menus.of_set_redraw(/*on*/ false)
uo_menus.of_clear()
uo_menus.of_add_menu(/*key*/ "tools", /*text*/ "&Extras")
uo_menus.of_set_redraw(/*on*/ true)
Eine schmale Leiste, Hilfe am Ende, ein Hilfetext in der Statusleiste #
// Help at the end of the bar ; what does not fit goes into the chevron
uo_menubar.of_menu(/*key*/ "help").is_align = u_pbt_menubar.ALIGN_END
// Section headers in View
uo_menubar.of_add_header(/*keys*/ "view", /*text*/ "Panels")
uo_menubar.of_add_item(/*keys*/ "view/tree", /*text*/ "Tree")
uo_menubar.of_add_item(/*keys*/ "view/output", /*text*/ "Output")
// A help text in the status bar for the pointed entry
uo_menubar.ib_track_hover = true
// ue_item_hover (string as_keys) of uo_menubar
choose case as_keys
case "file/save"
st_status.Text = "Saves the document"
case ""
st_status.Text = ""
end choose
Best Practices #
- Geben Sie jeder Ebene einen stabilen fachlichen Schlüssel (
file,save):ue_item_selectedliefert die Adressefile/save, nie die Beschriftung — sie ändert sich nicht mit der Sprache. - Grauen Sie aus, statt zu entfernen: ein fehlender Eintrag lässt den Benutzer suchen, ein ausgegrauter sagt ihm, dass es ihn gibt und etwas fehlt.
- Klammern Sie den Aufbau in
of_set_redraw(false)/of_set_redraw(true): eine vollständige Leiste sind schnell dreißig Aufrufe. - Verschieben Sie im Event
ue_auto_height, was unter der Leiste liegt — die Höhe hängt vom Thema und der Schriftgröße ab, sie ist nicht überall gleich. - Die Beschriftungen gehören Ihnen: übersetzen Sie sie vor
of_add_item, oder ändern Sie sie live überof_item(...).is_text/of_menu(...).is_text.of_set_translationübersetzt nur die eigenen Texte einer Komponente, und die Menüleiste hat keine. - Setzen Sie ein
&in jeden Titel (&Datei): Alt + der Buchstabe öffnet das Menü von überall, wie in jeder Windows-Anwendung.
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 |
Zwei Helfer werden nicht geerbt: of_icon und of_escape_markup liegen auf n_pbt_utils. Deklarieren Sie eines — n_pbt_utils lnv_utils, nichts zu erzeugen — und rufen Sie sie darauf auf.