PBToolboxAI v4 ← Site

webbrowser — u_pbt_webbrowser #

← Komponentenreferenz · Inhalt des Handbuchs

Ein in Ihr Fenster integrierter Webbrowser: Anzeige einer Seite, Adressleiste, Verlauf Zurück / Vorwärts, Kontextmenü für die Navigation.

▶ Live ansehen — Demoanwendung, Kachel Web browser: die Vorschau, der zugehörige Code und diese Seite, nebeneinander.


Auf einen Blick #

Userobjectu_pbt_webbrowser
Item-Klasse— (Komponente ohne Items)
WofürEine Webseite, ein internes Portal, eine Online-Dokumentation oder erzeugte HTML-Inhalte anzeigen, ohne die Anwendung zu verlassen

Schnellstart #

// open-Event des Fensters
uo_browser.ib_address_bar = true    // Adressleiste + Navigationsschaltflaechen
uo_browser.is_address = "https://fr.wikipedia.org/wiki/PowerBuilder"

Das Setzen von is_address ist der Navigationsvorgang: Jede Zuweisung öffnet die angeforderte Seite. Eine Adresse ohne Protokoll ("beispiel.de") erhält automatisch https://. Ein Dateipfad (C:\ordner\seite.html, \\server\freigabe\seite.html) wird zu einer file:///-Adresse. Wörter, die keine Adresse sind ("Rechnung 2026"), gehen an die Suchmaschine von is_search_url; ohne Suchmaschine werden sie abgelehnt, und ue_error meldet es. Ein Servername aus einem Wort, gefolgt von /, ? oder # (office/, intranet/start), ist eine Adresse, ebenso eine IPv6-Adresse in eckigen Klammern ([::1]/x); das Wort allein (intranet) bleibt freier Text. Ein Server ohne HTTPS wird mit ausdrücklichem http:// geschrieben.


Eigenschaften #

EigenschaftTypStandardZweck
is_addressstring""Angezeigte Adresse. Das Setzen dieser Eigenschaft löst die Navigation aus. Beim Zurücklesen erhalten Sie die tatsächlich angezeigte Seite: Folgt der Benutzer einem Link oder geht er zurück, folgt sie mit (ue_load_completed informiert Sie). Akzeptierte Schemata: http(s):, file: (auch ein Dateipfad), about:, data:, mailto:, tel:; javascript: wird abgelehnt
ib_address_barbooleanfalseZeigt die integrierte Adressleiste an: URL-Feld, Schaltflächen Zurück / Vorwärts / Neu laden
ib_context_menubooleanfalseAktiviert das Kontextmenü beim Rechtsklick: Zurück, Vorwärts, Neu laden, dazu Kopieren auf einer Auswahl, Link öffnen und Linkadresse kopieren auf einem Link, Bild kopieren auf einem Bild. Per Tastatur geöffnet (Umschalt+F10) erscheint es am Element. In einem Eingabefeld bleibt das Menü Ausschneiden / Kopieren / Einfügen
is_search_urlstring""Suchmaschine für Wörter, die keine Adresse sind, %s = der kodierte Text (z. B. https://www.bing.com/search?q=%s). Standardmäßig leer: Ein solcher Text wird abgelehnt und ue_error ausgelöst — eine Geschäftsanwendung schickt die Eingaben ihrer Benutzer nicht an eine Suchmaschine, die sie nicht gewählt hat. Nur eine http(s)-Adresse mit %s wird angenommen: jede andere löst ue_error aus, und die bisherige Suchmaschine bleibt
ib_veto_new_windowbooleanfalseFragt ue_new_window, bevor ein neues Fenster in der Ansicht geöffnet wird; false behält die aktuelle Seite
ib_veto_downloadsbooleanfalseFragt ue_download_starting vor jedem Download; false bricht ihn ab
ib_veto_navigationbooleanfalseFragt ue_navigating, bevor die Website zu einer anderen Seite wechselt (Link, Formular, Skript); false behält die aktuelle Seite. Eine erlaubte Seite wird unter der angeforderten Adresse neu geöffnet: Ein per POST gesendetes Formular verliert dabei seine Daten
ib_privatebooleanfalsePrivates Surfen: Cookies, Speicher und Cache der Websites werden nie auf die Festplatte geschrieben und verschwinden mit der Ansicht. Vor is_address setzen: Eine Änderung öffnet die Ansicht leer (keine Seite, kein Verlauf); erneut auf true gesetzt, öffnet sie eine neue private Sitzung
is_titlestring""Titel der angezeigten Seite, live gelesen (ue_title_changed meldet jede Änderung). Nur lesbar: Ein Schreiben ändert nichts
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)

Methoden #

MethodeZweck
of_refresh ( )Lädt die aktuelle Seite neu. Gibt 0 zurück, sobald angefordert, -4, wenn keine Seite angezeigt wird (is_address leer), -2, wenn die Komponente nicht erstellt ist
of_go_back ( )Kehrt zur vorherigen Seite zurück. Folgt der Reihenfolge Ihres Codes: is_address und dann of_go_back() werden in dieser Reihenfolge ausgeführt
of_go_forward ( )Geht zur nächsten Seite weiter
of_can_go_back ( ) → booleantrue, wenn eine vorherige Seite vorhanden ist — um Ihre eigene Zurück-Schaltfläche zu aktivieren oder auszugrauen. Live von der Seite gelesen; nach einem Ladevorgang lesen (ue_load_completed)
of_can_go_forward ( ) → booleantrue, wenn eine nächste Seite vorhanden ist
of_stop ( )Bricht den laufenden Ladevorgang ab und verwirft die noch wartenden Seiten; der abgebrochene Ladevorgang löst ue_load_failed aus
of_execute_javascript (string as_script)Führt ein Skript in der angezeigten Seite aus und gibt seinen Wert als JSON zurück: ein Text kommt in Anführungszeichen zurück, eine Zahl nicht (42), ein Skript, das einen Fehler auslöst oder nichts zurückgibt, ergibt null. Eine lange Antwort kommt vollständig zurück. Eine einzige Bedingung, und sie ist strukturell: Die Seite muss geladen sein, rufen Sie es also aus ue_load_completed auf, nie direkt nach dem Setzen von is_address. Gibt eine leere Zeichenkette zurück, wenn noch keine Seite da ist oder nach 5 Sekunden keine Antwort kam: of_get_last_error() sagt warum
of_show_html (string as_html) → longZeigt eine von der Anwendung erzeugte Seite an (Rechnung, Schreiben). Die Seite wird kodiert: Eine Farbe #c00, ein Anker, ein % oder ein Akzent erscheinen wie geschrieben. Höchstens 2 MB nach der Kodierung: darüber ue_error, und nichts ändert sich. Gibt 0 zurück, sobald gesendet, -2, wenn die Komponente nicht erstellt ist
of_clear_browsing_data ( ) → longLöscht, was die Websites gespeichert haben: Cookies (eine angemeldete Sitzung), lokalen Speicher, Cache, erteilte Berechtigungen. Das Löschen reiht sich hinter die bereits gesetzten Adressen ein: Die nächste Seite öffnet sich unbelastet. Alle webbrowser der Anwendung teilen diese Daten. Gibt 0 zurück, sobald gesendet, -2, wenn die Komponente nicht erstellt ist
of_reset ( )Setzt die Komponente zurück: Seite geleert, Navigationsverlauf gelöscht, Adressleiste ausgeblendet, Kontextmenü deaktiviert, Suchmaschine geleert, Rückfragen (ib_veto_*) deaktiviert, privates Surfen aus. Cookies und Sitzungen der Websites bleiben: Dafür gibt es of_clear_browsing_data. Gibt 0 zurück, sobald angewendet, -2, wenn die Komponente nicht erstellt ist
of_save_as_png (string) · of_save_as_jpg (string)Exportiert die angezeigte Website als Bild. Liefert 0 nach dem Schreiben des Bildes, -4 wenn das Schreiben fehlschlägt, -2 wenn die Komponente nicht erzeugt ist

Events #

EventAusgelöst wenn
ue_load_completed (string as_url)Eine Seite ist fertig geladen (Ihre, ein Link, Zurück, of_refresh); as_url ist die tatsächlich erreichte Adresse, Weiterleitungen inbegriffen. Nicht ausgelöst für eine leere Adresse (about:blank) oder einen fehlgeschlagenen Ladevorgang
ue_load_failed (string as_url, long al_status)Eine Seite konnte nicht geladen werden: unbekannter Host, kein Netzwerk, Zertifikat oder ein durch of_stop oder eine neuere Adresse abgebrochener Ladevorgang. al_status nennt den Grund: siehe Warum eine Seite nicht geladen wurde
ue_error (string as_message)Ein in is_address gesetzter (oder in der Leiste getippter) Text ist keine Adresse und kein is_search_url ist gesetzt, eine Adresse konnte gar nicht geöffnet werden, oder der Prozess der Seite wurde beendet. Sonst wird nichts blockiert: Die nächste Adresse lädt normal
ue_new_window (string as_url) → booleanDie Seite verlangt nach einem Klick ein neues Fenster (Link mit target=_blank, window.open): Es öffnet sich in dieser Ansicht. Abbrechbar, wenn ib_veto_new_window = true: false behält die aktuelle Seite. Ein nur per Skript, ohne Klick geöffnetes Fenster wird ignoriert. Nur http- und https-Adressen werden geöffnet: Eine Website, die eine Datei, eine data:-Seite oder einen Mail-Link verlangt, erhält ue_error. Einen file:-Link in einer Webseite (http, https, data:) lehnt die Engine selbst ab, noch vor der Komponente: Nichts öffnet sich, und es wird kein Ereignis ausgelöst
ue_download_starting (string as_url, string as_path) → booleanEin Download beginnt: as_url ist, was heruntergeladen wird, as_path die Datei, die geschrieben wird. Abbrechbar, wenn ib_veto_downloads = true: false bricht ihn ab; sonst läuft er wie in Edge weiter
ue_navigating (string as_url) → booleanDie Website wechselt zu einer anderen Seite: ein Link, ein Formular, ein Skript — nie eine von Ihrer Anwendung gesetzte Adresse. Abbrechbar, wenn ib_veto_navigation = true: false behält die aktuelle Seite
ue_title_changed (string as_title)Der Titel der angezeigten Seite hat sich geändert (is_title liest ihn jederzeit)
ue_permission_requested (string as_url, string as_kind) → booleanDie Website verlangt Kamera, Mikrofon, Standort… (as_kind = eine PERMISSION_*-Konstante). Abgelehnt, sofern das Event nicht true zurückgibt: die einzige Frage der Bibliothek, bei der Schweigen NEIN bedeutet
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 Design-Hintergrundfarbe berechnet; das Userobject hat sie bereits übernommen (backcolor)
ue_script_error (string as_message, string as_stack)In der Adressleiste der Komponente ist ein JavaScript-Fehler aufgetreten (nie in der angezeigten Website)

Die integrierte Adressleiste #

Das ist die schnellste Lösung: eine Eigenschaft, und der Benutzer verfügt über ein URL-Feld sowie die Schaltflächen Zurück / Vorwärts / Neu laden, im Design der übrigen Anwendung.

// Die Adressleiste, dann die zu oeffnende Seite
uo_browser.ib_address_bar = true
uo_browser.is_address = "https://fr.wikipedia.org/wiki/PowerBuilder"

Die Schaltflächen grauen sich von selbst aus, wenn es nirgendwohin zu gehen gibt. Im Adressfeld lädt F5 (oder Strg+R) neu, Alt+← / Alt+→ gehen zurück und vorwärts (bei Schreibrichtung von rechts nach links vertauscht), Esc stellt nach einer abgebrochenen Eingabe die aktuelle Adresse wieder her, und der erste Klick markiert die ganze Adresse.

Ihre eigenen Schaltflächen #

Wenn Sie die Navigation lieber über Ihre eigene Symbolleiste steuern möchten, blenden Sie die integrierte Leiste aus und verwenden Sie die Methoden:

// Schaltflaechen Zurueck / Vorwaerts Ihres Fensters
uo_browser.of_go_back()
uo_browser.of_go_forward()
// ue_load_completed-Event von uo_browser : (string as_url)
// Den Zustand Ihrer Schaltflaechen nach jeder Seite aktualisieren
uo_toolbar.of_item(/*keys*/ "main/back").ib_enabled = uo_browser.of_can_go_back()
uo_toolbar.of_item(/*keys*/ "main/forward").ib_enabled   = uo_browser.of_can_go_forward()

// Und die tatsaechliche Adresse widerspiegeln (Weiterleitungen inbegriffen)
sle_url.text = as_url

Das Kontextmenü für die Navigation #

ib_context_menu fügt beim Rechtsklick ein kleines Menü Zurück / Vorwärts / Neu laden hinzu, im Design und von der Anwendung gezeichnet. Es richtet sich nach dem, was unter der Maus liegt: Kopieren auf markiertem Text, Link öffnen und Linkadresse kopieren auf einem Link, Bild kopieren auf einem Bild. Per Tastatur geöffnet (Umschalt+F10, Menütaste) erscheint es am Element. Es teilt sich denselben Verlauf wie die Adressleiste: Beide bleiben also stets konsistent.

// A small menu on a right click : back, forward, refresh
uo_browser.ib_context_menu = true

Einen Ladevorgang abbrechen #

// Schaltflaeche Stopp : bricht eine Seite ab, die zu lange braucht
uo_browser.of_stop()

Wörter statt einer Adresse #

Standardmäßig wird ein Text, der keine Adresse ist, abgelehnt (ue_error), ohne etwas zu blockieren: Die nächste Adresse lädt normal. Um daraus eine Suche zu machen, wählen Sie die Suchmaschine:

// Words typed in the address bar go to this engine (%s = the text)
uo_browser.is_search_url = "https://www.bing.com/search?q=%s"
uo_browser.is_address = "PowerBuilder WebView2"

Neue Fenster und Downloads #

Ein Link „in neuem Tab öffnen“ oder ein nach einem Klick geöffnetes Anmeldefenster wird in der Ansicht angezeigt, und ue_new_window teilt es Ihnen mit. Ein Download läuft wie in Edge weiter, und ue_download_starting nennt Ihnen Adresse und Datei. Beide werden zu einer Rückfrage, wenn Sie es verlangen:

// Ask before each download
uo_browser.ib_veto_downloads = true
// ue_download_starting event of uo_browser : (string as_url, string as_path)
// Only PDF files may be downloaded
return Lower(Right(as_path, 4)) = ".pdf"

Auf den eigenen Servern bleiben #

ue_navigating wird jedes Mal ausgelöst, wenn die Website zu einer anderen Seite wechselt — ein Link, ein Formular, ein Skript —, nie für eine von Ihrem Code gesetzte Adresse. Mit ib_veto_navigation wird es zur Rückfrage: false behält die aktuelle Seite. Eine erlaubte Seite wird unter der von der Website angeforderten Adresse neu geöffnet; ein per POST gesendetes Formular verliert dabei seine Daten.

// Ask before the site leaves for another page
uo_browser.ib_veto_navigation = true
// ue_navigating event of uo_browser : (string as_url)
// Only the company servers may be opened
return Pos(Lower(as_url), "://intranet.example.com/") > 0

Kamera, Mikrofon, Standort #

Wenn eine Website Kamera, Mikrofon, Standort, Benachrichtigungen oder das Lesen der Zwischenablage verlangt, entscheidet ue_permission_requested, und die Standardantwort ist nein: Eine Website schaltet keine Kamera über eine Rückfrage ein, die der Benutzer nicht versteht. Es ist die einzige Frage der Bibliothek, bei der Schweigen Ablehnung bedeutet. Nichts wird gespeichert: Die Frage kommt bei jeder Anforderung wieder.

// ue_permission_requested event of uo_browser : (string as_url, string as_kind)
// The video-call page of the company may use the camera and the microphone
if Pos(Lower(as_url), "://visio.example.com/") = 0 then return false
return as_kind = uo_browser.PERMISSION_CAMERA or as_kind = uo_browser.PERMISSION_MICROPHONE

Werte von as_kind: PERMISSION_CAMERA, PERMISSION_MICROPHONE, PERMISSION_GEOLOCATION, PERMISSION_NOTIFICATIONS, PERMISSION_CLIPBOARD, PERMISSION_SENSORS, PERMISSION_DOWNLOADS (mehrere Downloads hintereinander), PERMISSION_FILES, PERMISSION_AUTOPLAY, PERMISSION_FONTS, PERMISSION_MIDI, PERMISSION_WINDOWS, PERMISSION_UNKNOWN.

Warum eine Seite nicht geladen wurde #

al_status von ue_load_failed wird mit den LOADSTATUS_*-Konstanten der Komponente verglichen:

KonstanteBedeutet
LOADSTATUS_HOST_NOT_RESOLVEDUnbekannter Host (Tippfehler, DNS)
LOADSTATUS_DISCONNECTED · LOADSTATUS_CANNOT_CONNECT · LOADSTATUS_SERVER_UNREACHABLEKein Netzwerk, Server nicht erreichbar
LOADSTATUS_TIMEOUTDer Server hat nicht rechtzeitig geantwortet
LOADSTATUS_CERT_INVALID · LOADSTATUS_CERT_EXPIRED · LOADSTATUS_CERT_NAME_INCORRECT · LOADSTATUS_CERT_REVOKED · LOADSTATUS_CLIENT_CERT_ERRORZertifikat abgelehnt
LOADSTATUS_CANCELEDLadevorgang durch of_stop oder eine neuere Adresse abgebrochen
LOADSTATUS_AUTH_REQUIRED · LOADSTATUS_PROXY_AUTH_REQUIREDAnmeldung erforderlich (Server, Proxy)
LOADSTATUS_CONNECTION_ABORTED · LOADSTATUS_CONNECTION_RESET · LOADSTATUS_INVALID_RESPONSE · LOADSTATUS_REDIRECT_FAILED · LOADSTATUS_UNEXPECTED_ERROR · LOADSTATUS_UNKNOWNAndere Verbindungs- oder Antwortfehler
// ue_load_failed event of uo_browser : (string as_url, long al_status)
if al_status = uo_browser.LOADSTATUS_HOST_NOT_RESOLVED then
	st_message.text = "Unknown address : " + as_url
end if

Ein Skript in der Seite ausführen #

of_execute_javascript liest oder ändert die angezeigte Seite (ihren Titel, ein Feld, einen Zähler). Es ist durch die Lizenz nicht eingeschränkt, auch nicht auf einer about:blank- oder data:-Seite: Ein Skript in der Seite auszuführen ist die Aufgabe eines Browsers, und die Komponente ist kostenlos.

// ue_load_completed event of uo_browser : (string as_url)
// The page title, as JSON : "PowerBuilder - Wikipedia" (quotes included)
sle_title.text = uo_browser.of_execute_javascript(/*script*/ "document.title")

Websites, die die eingebettete Anzeige verweigern #

Manche Websites — Google, die meisten Banken, viele SaaS-Anwendungen — senden Sicherheits-Header, die die Anzeige innerhalb einer anderen Seite verbieten. Die Komponente ist davon nicht betroffen: Sie zeigt eine Website nie in einem Rahmen. Die Seite wird als Hauptdokument geöffnet, genau wie in Ihrem eigenen Browser, und diese Header greifen dann nicht mehr.

Es gibt also nichts einzustellen und keinen Sonderfall, den Sie in Ihrem Code behandeln müssten.

// Eine Website, die die Einbettung verweigert : nichts Besonderes zu tun
uo_browser.ib_address_bar = true
uo_browser.is_address = "https://www.google.com"

Im Gegenzug füllt die Seite die gesamte Komponente unterhalb der Adressleiste: Was Sie darüber zeichnen würden (Banner, gestaltete Überlagerungen), ist während des Surfens nicht sichtbar.


HTML-Inhalt ohne Netzwerk #

of_show_html zeigt eine von Ihrer Anwendung erzeugte HTML-Seite an: die Vorschau eines Schreibens, eines Tickets, einer Rechnung oder eines Berichts, ganz ohne Netzwerkaufruf und ohne temporäre Datei. Die Seite wird für Sie kodiert: Eine Farbe #c00, ein Anker, ein % oder ein Akzent erscheinen wie geschrieben (höchstens 2 MB).

// Local variables
string ls_html

// An order summary built by the application : the colour and the "%" come out as written
ls_html = "<html><body>" &
        + "<h1 style='color:#1f6feb'>Order #4152</h1>" &
        + "<p>Discount : 10%</p>" &
        + "</body></html>"
uo_browser.of_show_html(/*html*/ ls_html)

Direkt in is_address gesetzt, wird eine data:text/html,-Adresse nicht kodiert: Ein # schneidet die Seite dort ab (alles Folgende gilt als Anker), und ein % verfälscht sie. Verwenden Sie lieber of_show_html, oder kodieren Sie selbst (# → %23, % → %25).

Eine lokale Datei öffnet sich genauso mit file:///C:/temp/bericht.html oder einfach über ihren Pfad C:\temp\bericht.html.


Wieder bei null anfangen #

of_reset() leert nicht nur die Seite: Es löscht auch den Navigationsverlauf. Ein Benutzer kann also nicht über die Zurück-Schaltfläche zu einer Seite gelangen, die vom vorherigen Benutzer oder in einem anderen Vorgang aufgerufen wurde. Was die Websites gespeichert haben, bleibt davon unberührt: Cookies, angemeldete Sitzungen, lokaler Speicher, Berechtigungen. An einem gemeinsam genutzten Arbeitsplatz wäre der nächste Benutzer als der vorherige angemeldet — of_clear_browsing_data() löscht das. Die Websites leben in einem eigenen Browserprofil, getrennt von den Komponenten der Anwendung.

// Wechsel des Vorgangs : mit einem leeren Browser ohne Verlauf neu beginnen
uo_browser.of_reset()

// Dann der Vorgang, mit seiner Adressleiste
uo_browser.ib_address_bar = true
uo_browser.is_address = ls_folder_url
// The user of the workstation changes : no page, no history, no signed-in session left
uo_browser.of_reset()
uo_browser.of_clear_browsing_data()

Damit nie etwas auf die Festplatte geschrieben wird, setzen Sie ib_private = true vor der ersten Adresse: Cookies und Speicher verschwinden mit der Ansicht.

Das ist der Reflex, den man haben sollte, sobald ein und dieselbe Komponente Inhalte aus unterschiedlichen Kontexten anzeigt.


Vollständiges Beispiel #

// open-Event des Fensters : Startseite des internen Portals
uo_browser.of_reset()                  // sauber neu beginnen (Verlauf inbegriffen)

// Die Navigationswerkzeuge, dann die Startseite
uo_browser.ib_address_bar  = true      // URL-Feld + Zurueck / Vorwaerts / Neu laden
uo_browser.ib_context_menu = true      // dieselbe Navigation beim Rechtsklick
uo_browser.is_address = "https://intranet.example.com/home"
// ue_load_completed-Event von uo_browser : (string as_url)
uo_status.of_panel(/*key*/ "main").is_text = "Seite geladen: " + as_url

Best Practices #

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_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

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.


← Komponentenreferenz · Inhalt des Handbuchs