breadcrumb — u_pbt_breadcrumb #
← Komponentenreferenz · Inhalt des Leitfadens
Brotkrumenpfad: der klickbare Pfad, der dem Benutzer sagt, wo er ist, und ihn mit einem Klick auf jede darüberliegende Ebene zurückbringt.
▶ Live ansehen — Demoanwendung, Kachel Breadcrumb: die Vorschau, der zugehörige Code und diese Seite, nebeneinander.
Auf einen Blick #
| Userobject | u_pbt_breadcrumb |
| Item-Klasse | n_pbt_breadcrumb_item (of_item(Adresse)) · n_pbt_breadcrumb_child (of_child(Adresse)) |
| Dient zu | Sagen, wo man in einer Hierarchie steht, und daraus wieder herausfinden |
| Prinzip | Sie beschreiben den Pfad; das Falten, das Menü und das Layout übernehmen wir |
Schnellstart #
// Jedes Mal, wenn der Benutzer eine Ebene tiefer geht
uo_crumbs.of_add_item(/*keys*/ "home", /*text*/ "H")
uo_crumbs.of_add_item(/*keys*/ "home/clients", /*text*/ "C")
uo_crumbs.of_add_item(/*keys*/ "home/clients/dupont", /*text*/ "D")
// Das zuletzt hinzugefuegte wird der aktuelle Ort, und ist ebenfalls klickbar
Ein Segment wird über seine Adresse benannt: die Schlüssel von der Wurzel an, mit / verbunden — "home/clients/dupont". Ein bloßer Schlüssel genügt nicht mehr, sobald er auf zwei Ebenen desselben Pfads vorkommt: das Steuerelement lehnt dann ab, statt zu raten und Sie woandershin zu führen.
Genau das gibt Ihnen ue_item_clicked zurück, und genau das nehmen of_truncate, of_item oder of_add_child entgegen: Was Sie erhalten, geht unverändert wieder hinein.
Ein Klick meldet, er schneidet nicht #
Ein Klick auf ein Segment kürzt den Pfad nicht. Zurückgehen heißt, eine Maske zu verlassen, und eine Maske zu verlassen heißt oft, zuerst zu speichern — was kein Klick entscheiden kann. Die Komponente sagt Ihnen, worauf geklickt wurde; geschnitten wird von Ihnen, über of_truncate, sobald Ihre Prüfungen bestanden sind.
Dieselbe Rollenteilung wie bei der stepbar, und aus demselben Grund. Eine Komponente, die sich selbst bewegt, zwingt die Anwendung dazu, eine bereits erfolgte Bewegung rückgängig zu machen, statt einfach zu entscheiden, ob sie stattfindet.
Zwei Segmente melden nie etwas: ein deaktiviertes, ein verborgenes. Das letzte — wo man ist — antwortet wie die anderen, bis ib_last_clickable nein sagt.
// event ue_item_clicked : (string as_keys)
// Zuerst Ihre Pruefungen - die Maske zu verlassen entscheiden Sie, nicht ein Klick
if not of_can_leave() then return
uo_crumbs.of_truncate(/*keys*/ as_keys)
of_open_screen(as_keys)
Wenn der Pfad zu lang wird #
Ein Pfad ist so lang, wie die Daten ihn machen, und die Breite ist, wie sie ist. is_overflow_mode sagt, was nachgibt.
| Konstante | Was geschieht |
|---|---|
OVERFLOW_COLLAPSE | Die Mitte faltet sich in ein …, das öffnet, was es verbirgt — der Standard |
OVERFLOW_SCROLL | Die Beschriftungen bleiben ganz, der Streifen gleitet (auch mit dem Mausrad) |
OVERFLOW_SHRINK | Die Segmente in der Mitte geben nach, bis auf einen Buchstaben und Auslassungspunkte; das erste und der aktuelle Ort geben zuletzt nach. Ist genug Platz, wird nichts gekürzt |
Weder das erste noch das letzte Segment faltet sich je. Die Wurzel zu verlieren heißt, den Anker zu verlieren, zu dem alle zurückkehren; das Ende zu verlieren heißt, den eigenen Standort zu verlieren.
Ein gefaltetes Segment meldet genau wie die anderen: es im
…zu wählen löst dasselbeue_item_clickedaus. Von der Breite verborgen zu sein ändert nicht, was ein Segment bedeutet.
ii_max_visible setzt eine harte Obergrenze, unabhängig vom Platz. Lassen Sie sie bei 0 — dem Standard —, damit die Breite entscheidet, was ein Brotkrumenpfad normalerweise tun sollte.
Das Geschwistermenü #
of_add_child gibt einem Segment ein eigenes Aufklappmenü: die anderen Zweige dieser Ebene. Das erspart den Weg zurück zur Wurzel, nur um in den Nachbarordner zu gelangen.
Der Chevron hinter dem Segment wird dann zur Schaltfläche, die sie öffnet — es ist derselbe wie der Trenner, wie im Windows-Explorer: ein Chevron, eine Bedeutung. Die Wahl eines Zweigs löst ue_child_clicked aus, und auch hier bewegt sich der Pfad nicht von selbst. Auf der Tastatur öffnet Pfeil nach unten auf einem Segment seine Zweige, und auf dem …, was es verbirgt.
// Two branches under Clients : its chevron lists them
uo_crumbs.of_add_child(/*keys*/ "home/clients/durand", /*text*/ "D")
uo_crumbs.of_add_child(/*keys*/ "home/clients/martin", /*text*/ "M")
Zweige auf Abruf #
Alle Zweige im Voraus anzulegen trägt weder bei einem tiefen Baum noch bei einer Datenbank. Der Windows-Explorer liest einen Ordner erst, wenn sein Chevron geöffnet wird; der Pfad tut dasselbe: markieren Sie ein Segment mit ib_has_children, sein Chevron erscheint sofort, und das Öffnen löst ue_children_needed aus. Sie legen die Zweige in diesem Ereignis an, und das Menü öffnet sich nach seiner Rückkehr mit dem, was das Segment in diesem Moment trägt. Ein großer Ordner ist kein Problem: 30 000 Zweige hinzuzufügen liest nichts zurück, und im offenen Menü springt die Eingabe der ersten Buchstaben („Win“) zum ersten Zweig, der so beginnt, wie im Explorer.
// Das Segment verspricht : der Chevron erscheint, nichts wird gelesen
uo_crumbs.of_item(/*keys*/ "home/clients").ib_has_children = true
// In ue_children_needed(as_keys) : jetzt lesen, dann oeffnet sich das Menue
uo_crumbs.of_clear_children(/*keys*/ as_keys)
uo_crumbs.of_add_child(/*keys*/ as_keys + "/durand", /*text*/ "Durand SARL")
Den Pfad eingeben #
Mit ib_editable verhält sich der leere Teil der Leiste wie die Adressleiste des Windows-Explorers: ein Klick (oder F2, oder of_edit) macht aus dem Pfad ein Textfeld mit der angezeigten Adresse — die Schlüssel, durch / verbunden, was of_path liefert. Eingabe löst ue_path_entered mit dem Text wie eingegeben aus; Esc bricht ab. Der Pfad bewegt sich nicht von selbst, aus demselben Grund, aus dem ein Klick ihn nicht kürzt: nur Ihre Anwendung weiß, was die Wörter bedeuten. ii_edit_skip lässt die ersten Segmente aus dem Feld heraus — die Wurzel, die den Rechner benennt — und stellt sie beim Melden wieder vor das Eingegebene.
Eigenschaften #
| Eigenschaft | Typ | Standard | Rolle |
|---|---|---|---|
is_separator | string | chevron | Das Zeichen zwischen den Segmenten (SEPARATOR_*-Konstanten). Es dreht sich in einer rechtsläufigen Sprache von selbst um: wählen Sie eine Bedeutung, keine Richtung. Ein Trenner, der Zweige öffnet, behält das gewählte Zeichen: dass er sich öffnet, sagen Hover und Mauszeiger |
is_overflow_mode | string | collapse | Was nachgibt, wenn der Pfad nicht mehr passt (OVERFLOW_*-Konstanten). Bei scroll folgt der Streifen dem aktuellen Ort |
ii_max_visible | integer | 0 | Harte Obergrenze für die Zahl der gezeigten Segmente, das … nicht mitgezählt. 0 überlässt es der Breite |
ib_last_clickable | boolean | true | Antwortet das letzte Segment — wo man ist — auf einen Klick? Standardmäßig wahr: ein Pfad dient auch dazu, das Angezeigte neu zu laden, und was der Klick tut, ist Sache Ihrer Anwendung. Auf falsch setzen, wenn Ihr Pfad nur navigiert |
ib_editable | boolean | false | Kann der Pfad eingegeben werden? Wahr: ein Klick auf den leeren Teil der Leiste (oder F2, oder of_edit) macht aus dem Pfad ein Textfeld mit der Adresse des aktuellen Orts (was of_path liefert); Enter löst ue_path_entered aus, ebenso das Verlassen des Felds nach einer Änderung; Esc bricht ab. Ein unverändert verlassenes Feld meldet nichts; ein Klick auf ein anderes Steuerelement der Anwendung bestätigt den Text, der Wechsel in eine andere Anwendung behält die Eingabe. Der Pfad bewegt sich nie von selbst |
ib_allow_drop | boolean | false | Opt-in: nimmt aus dem Windows-Explorer auf ein Segment abgelegte Dateien an. Das Segment unter dem Zeiger leuchtet während des Ziehens auf, und ue_drop_files nennt es mit den vollständigen Pfaden |
ii_edit_skip | integer | 0 | Anzahl der führenden Segmente, die aus dem Textfeld herausbleiben — eine Wurzel, die den Rechner benennt, tippt niemand. Beim Melden werden sie wieder vorangestellt: die Adresse bleibt vollständig |
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_item (string as_keys, string as_text) | Hängt ein Segment ans Ende: es wird zum aktuellen Ort. as_keys ist ein einfacher Schlüssel oder eine Adresse; eine Adresse wird nur angenommen, wenn sie dort landet, wo sie es sagt — ihre Ebenen über der letzten müssen die Adresse des letzten Segments sein. Liefert 0 nach der Anwendung, -5 bei einem leeren Schlüssel, einem Schlüssel mit ` | oder einer Adresse, die woanders landen würde, -2` wenn die Komponente nicht erzeugt ist |
of_add_item (string as_keys, string as_text, string as_image) | Dasselbe, mit dem Symbol vor der Beschriftung — drittes Argument, wie überall sonst in der Bibliothek. Eine leere Beschriftung ergibt ein Segment nur mit Symbol (das Haus der Wurzel). Liefert 0 nach der Anwendung, -5 bei einem leeren Schlüssel, einem Schlüssel mit ` | oder einer Adresse, die woanders landen würde, -2` wenn die Komponente nicht erzeugt ist |
of_insert_item (string as_keys, string as_text, integer ai_index) | Fügt an der gewählten Position ein (erste Position = 1). Eine Überladung nimmt auch das Symbol. Eine Adresse wird nur angenommen, wenn ihre Ebenen über der letzten die Adresse des Segments sind, dem sie folgt. Die folgenden Segmente rücken eine Ebene tiefer: ihre Adressen ändern sich, ihre Handles werden freigegeben, ihre Farben und Tooltips folgen ihnen. Liefert 0 nach der Anwendung, -5 bei einem leeren Schlüssel, einem Schlüssel mit ` | oder einer Adresse, die woanders landen würde, -2` wenn die Komponente nicht erzeugt ist |
of_remove_item (string as_keys) | Entfernt ein Segment über seine Adresse; die anderen behalten ihren Zustand. Die folgenden Segmente rücken eine Ebene auf: die Handles des entfernten Segments und aller folgenden werden freigegeben. Liefert 0 nach der Anwendung, -5 wenn die Adresse kein Segment bezeichnet (unbekannt, oder ein wiederholter einfacher Schlüssel), -2 wenn die Komponente nicht erzeugt ist | |
of_truncate (string as_keys) | Verwirft alles nach diesem Segment, das zum aktuellen Ort wird. Dafür gibt es einen Brotkrumenpfad überhaupt; eine unbekannte Adresse oder ein wiederholter einfacher Schlüssel ändert nichts und liefert -5. Die Handles der verworfenen Segmente werden freigegeben. Liefert 0 nach der Anwendung, -5 wenn die Adresse kein Segment bezeichnet, -2 wenn die Komponente nicht erzeugt ist | |
of_clear ( ) | Leert den Pfad; die für seine Segmente und Zweige ausgegebenen Handles werden freigegeben. Liefert 0 nach der Anwendung, -2 wenn die Komponente nicht erzeugt ist | |
of_add_child (string as_keys, string as_text) | Fügt einen Geschwisterzweig an der angegebenen Adresse hinzu: das Segment darüber bekommt ein Chevron, das sie öffnet. Eine Überladung nimmt auch das Symbol. Liefert 0 nach der Anwendung, -5 wenn das Segment darüber nicht existiert, wenn der Schlüssel des Zweigs darunter schon vergeben ist oder ` | enthält, -2` wenn die Komponente nicht erzeugt ist |
of_add_children (string as_keys, string as_child_keys[], string as_texts[]) | Fügt eine ganze Ebene von Geschwisterzweigen unter dem Segment as_keys in einem einzigen Aufruf hinzu: jeder Text von as_texts (und jedes Bild, in der Überladung, die auch eine Bildliste nimmt) gehört zum Schlüssel mit demselben Rang in as_child_keys; ein fehlender Text zeigt den Schlüssel. Dieselben Zweige wie eine Schleife über of_add_child, ohne einen Hin- und Rückweg für jeden: ein Ordner mit 30 000 Unterordnern öffnet sein Menü sofort. Liefert 0 nach der Anwendung (eine leere Liste fügt nichts hinzu), -5 wenn die Adresse kein Segment bezeichnet oder ein Schlüssel leer ist, / oder ` | enthält, unter dem Segment schon vergeben ist oder zweimal in der Liste vorkommt — dann wird nichts hinzugefügt, -2` wenn die Komponente nicht erzeugt ist |
of_clear_children (string as_keys) | Entfernt die Geschwisterzweige eines Segments samt ihren Handles; sein Trenner wird wieder ein einfaches Zeichen. Liefert 0 nach der Anwendung, -5 wenn die Adresse kein Segment bezeichnet, -2 wenn die Komponente nicht erzeugt ist | |
of_remove_child (string as_keys) | Entfernt einen Geschwisterzweig über seine eigene Adresse, samt Handle; ist der letzte weg, wird das Chevron wieder ein einfacher Trenner. Liefert 0 nach der Anwendung, -5 wenn das Segment oder der Zweig nicht existiert, -2 wenn die Komponente nicht erzeugt ist | |
of_child (string as_keys) | Das Handle eines Geschwisterzweigs — die Adresse, die of_add_child genommen hat — um ihn umzubenennen, auszugrauen oder zu verbergen. Das Menü ist ein natives Popup: es zeichnet Text, Bild, ausgegraut und verborgen, sonst nichts — der Tooltip und die Farben, die ein Handle erbt, werden dort ignoriert. Eine Adresse mit einer Ebene hat kein Segment darüber: ihr Handle ist wirkungslos | |
of_path ( ) | Wo man ist, als Adresse: die Schlüssel aller Segmente bis zum letzten sichtbaren, getrennt durch /. Ein verborgenes Segment bleibt darin — es gehört zur Adresse — und die Grenze der Demoversion kürzt sie nie: of_truncate(of_path()) trifft immer. Live gelesen: eine Anwendung, die diese Zeichenkette von Hand nachbaute, würde am Ende etwas anderes sagen als der Pfad | |
of_edit ( ) | Öffnet das Eingabefeld des Pfads — dasselbe wie ein Klick auf den leeren Teil der Leiste — aus einem eigenen Menüeintrag oder einer Schaltfläche. Benötigt ib_editable. Liefert 0 nach der Anwendung, -4 wenn ib_editable falsch ist (nichts öffnet sich), -2 wenn die Komponente nicht erzeugt ist | |
of_item (string as_keys) | Das Handle eines Segments, um es später umzubenennen, auszugrauen oder zu verbergen. Es lebt so lange wie sein Segment: of_clear, of_remove_item und of_truncate geben die Handles der entfernten Segmente frei | |
of_set_redraw (boolean) | Fasst eine Folge von Änderungen zu einem einzigen Rendern 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_item_clicked (string as_keys) | Ein Segment wurde angeklickt — im Pfad oder im …, das es verbirgt. Der Pfad kürzt sich nicht selbst: rufen Sie of_truncate, sobald Ihre Prüfungen bestanden sind |
ue_item_rclicked (string as_keys) | Rechtsklick auf ein Segment — meist ein eigenes Kontextmenü. as_keys ist seine vollständige Adresse, wie in ue_item_clicked |
ue_child_clicked (string as_keys) | Im Menü eines Segments wurde ein Geschwisterzweig gewählt; as_keys ist die Adresse des Zweigs, bereit für of_add_item |
ue_children_needed (string as_keys) | Der Chevron eines mit ib_has_children markierten Segments öffnet sich: legen Sie seine Zweige jetzt an (of_add_child), das Menü öffnet sich nach Rückkehr des Ereignisses mit dem, was das Segment in diesem Moment trägt. Bei jedem Öffnen gefragt: leeren und neu anlegen, wenn sich die Zweige geändert haben könnten, nichts tun, wenn das Vorhandene noch gilt |
ue_path_entered (string as_path) | Der Benutzer hat einen Pfad in die Leiste eingegeben (ib_editable) und Enter gedrückt — oder das Feld nach einer Änderung verlassen; as_path ist der Text wie eingegeben, mit den ersten ii_edit_skip Segmenten davor. Ein Klick auf ein anderes Steuerelement der Anwendung gilt als Verlassen des Felds. Esc, ein unverändertes Feld oder eine andere Anwendung im Vordergrund melden nichts. Der Pfad bewegt sich nicht von selbst: prüfen Sie die Wörter und bauen Sie ihn dann mit of_clear und of_add_item neu auf, wenn Sie einverstanden sind |
ue_drop_files (string as_keys, string as_files[]) | Dateien wurden aus dem Explorer auf ein Segment abgelegt (ib_allow_drop): as_keys ist die Adresse des Segments unter dem Zeiger, leer, wenn neben dem Pfad abgelegt wurde; as_files die vollständigen Pfade |
ue_drag_enter ( ) · ue_drag_leave ( ) | Ein Ziehen von Dateien aus dem Explorer ist in die Komponente eingetreten, oder hat sie ohne Ablegen verlassen — ein Ablegen löst nur ue_drop_files aus |
ue_auto_height (long al_height) | Die Leiste meldet die Höhe, die sie braucht — eine Zeile, bestimmt von Schrift und Thema; das Userobject ist bereits angepasst, verschieben Sie, was darunter liegt |
ue_ready ( ) | Die Komponente ist fertig geladen; alles zuvor Gesendete wurde nachgespielt |
ue_runtime_missing ( ) | Die WebView2-Runtime fehlt: die Komponente bleibt leer |
ue_bg_color (long al_color) | Die Komponente hat ihre Themen-Hintergrundfarbe ermittelt; das Userobject hat sie bereits übernommen (backcolor) |
Der Pfad navigiert nicht. Er sagt, wo man ist, und meldet, was er gefragt wird; die Maske öffnet Ihre Anwendung — dieselbe Aktion, aus einem Menü oder aus dem Pfad ausgelöst, läuft also über denselben Code.
Item-Eigenschaften #
| Eigenschaft | Typ | Standard | Rolle |
|---|---|---|---|
is_text | string | "" | Die Beschriftung des Segments, änderbar ohne Neuaufbau des Pfads (Rich-Markup erlaubt: eine Beschriftung aus DATEN — ein Ordnername — läuft zuerst durch of_escape_markup von n_pbt_utils, sonst erschiene [b]Entwürfe fett und ohne Klammern) |
is_image | string | "" | Das Symbol vor der Beschriftung (Präfixe mono: und tint: erlaubt) |
ib_enabled | boolean | true | Ein deaktiviertes Segment ist ausgegraut und meldet nichts: die Ebene existiert im Pfad, aber man kann nicht zu ihr zurück (Rechte, ein Datensatz in Bearbeitung). Sein Chevron öffnet ebenfalls nichts, und ein Ziehen von Dateien hebt es nicht hervor |
ib_visible | boolean | true | Ein verborgenes Segment verlässt den Pfad, samt Trennzeichen — nützlich für eine technische Ebene, die den Benutzer nichts angeht. Es bleibt erhalten: es wieder zu zeigen erfordert keinen Neuaufbau |
ib_has_children | boolean | false | Markiert: unter diesem Segment gibt es etwas. Sein Chevron erscheint, noch ohne etwas dahinter, und das Öffnen löst ue_children_needed aus, wo die Zweige in diesem Moment gelesen werden. Ein Segment, dessen Zweige mit of_add_child angelegt wurden, braucht keine Markierung |
Eigenschaften eines Kindes #
Erhalten über of_child(Adresse). Das Menü ist ein natives Popup: eine Eigenschaft, die geändert wird, während es offen ist, zeigt sich beim nächsten Öffnen.
| Eigenschaft | Typ | Standard | Rolle |
|---|---|---|---|
is_text | string | "" | Die Beschriftung des Zweigs im Menü |
is_image | string | "" | Das Symbol vor der Beschriftung |
ib_enabled | boolean | true | Ein ausgegrauter Zweig bleibt im Menü und kann nicht gewählt werden — keine Rechte auf diesem Zweig |
ib_visible | boolean | true | Ein verborgener Zweig verlässt das Menü, ohne entfernt zu werden; der letzte verborgene schließt den Chevron |
Beispiele #
Ihn beim Navigieren mitführen #
// Rebuild the trail in a single redraw : freeze, clear, add, insert, redraw
uo_crumbs.of_set_redraw(/*on*/ false)
uo_crumbs.of_clear()
uo_crumbs.of_add_item(/*keys*/ "home", /*text*/ "H", /*image*/ "mono:img\packimages.dll:svg/samples/folder-open")
uo_crumbs.of_insert_item(/*keys*/ "home/region", /*text*/ "R", /*index*/ 2)
uo_crumbs.of_set_redraw(/*on*/ true)
Auf einen Klick hin zurückgehen #
// Cut the trail after Clients, then read the path that remains
uo_crumbs.of_truncate(/*keys*/ "home/clients")
ls_path = uo_crumbs.of_path()
Eine gesperrte Ebene, eine verborgene #
// Die Ebene existiert, ist aber nicht erreichbar
uo_crumbs.of_item(/*keys*/ "home/clients/orders").ib_enabled = false
// Und diese geht den Benutzer nichts an : raus aus dem Pfad, samt Trennzeichen
uo_crumbs.of_item(/*keys*/ "home").ib_visible = false
// Slash separator, scrolling on overflow, at most 4 segments shown, last one not clickable
uo_crumbs.is_separator = uo_crumbs.SEPARATOR_SLASH
uo_crumbs.is_overflow_mode = uo_crumbs.OVERFLOW_SCROLL
uo_crumbs.ii_max_visible = 4
uo_crumbs.ib_last_clickable = false
// Remove one segment, then the branches offered under another
uo_crumbs.of_remove_item(/*keys*/ "home/region")
uo_crumbs.of_clear_children(/*keys*/ "home/clients")
Best Practices #
- Geben Sie jedem Segment den Schlüssel der Maske, die es öffnet: Ihr
ue_item_clickedwird zu einem lesbarenchoose case, und derselbe Code bedient das Menü. - Rufen Sie
of_truncatein Ihrem Klick-Handler, nicht davor: das stellt sicher, dass eine Maske nie ohne Ihre Prüfungen verlassen wird. - Lassen Sie
ii_max_visiblebei0, sofern kein Entwurf etwas anderes verlangt. Ein Pfad, der der Breite folgt, zeigt immer so viel, wie hineinpasst. - Benennen Sie Segmente mit Wörtern, die der Benutzer wiedererkennt — den Kundennamen, nicht dessen Nummer. Ein Pfad wird gelesen, nicht entziffert.
- Nehmen Sie nur Ebenen auf, zu denen man wirklich zurückkann. Ein Segment, das jedes zweite Mal scheitert, kostet den ganzen Pfad seine Glaubwürdigkeit; ist eine Ebene vorübergehend gesperrt, sagt
ib_enableddas, ohne zu lügen. - Ein Brotkrumenpfad nennt einen Ort, keinen Fortschritt: für „Schritt 2 von 5“ ist die stepbar das Richtige.
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.