PBToolboxAI v4 ← Site

codeeditor — u_pbt_codeeditor #

← Komponentenreferenz · Inhalt des Handbuchs

Code-Editor mit Syntaxhervorhebung: zehn Sprachen, Zeilennummern, Falten von Regionen, Suchen und Ersetzen, Diagnosemarkierungen in der Leiste und Ablegen von Dateien.

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


Auf einen Blick #

Userobjectu_pbt_codeeditor
Item-Klasse— (Komponente ohne Items)
WofürCode, eine SQL-Abfrage oder eine Konfigurationsdatei eingeben oder anzeigen: überall dort, wo ein multilineedit zu unleserlich ist
Opt-in-Optionenib_track_caret, ib_allow_drop, ib_folding

Schnellstart #

// open-Event des Fensters
uo_editor.is_syntax = uo_editor.SYNTAX_SQL
uo_editor.is_text   = "SELECT c.name, SUM(o.amount) AS total~r~n" &
                       + "FROM customer c~r~n" &
                       + "WHERE o.status = 'paid'"
// Local variables
string ls_sql

// Zuruecklesen, was der Benutzer tatsaechlich eingegeben hat
ls_sql = uo_editor.of_get_text()

is_text liefert dasselbe: Die Eingabe des Benutzers landet dort, sobald sie sich gesetzt hat (Event ue_changed).


Unterstützte Sprachen #

is_syntax akzeptiert eine dieser Konstanten oder SYNTAX_NONE (leere Zeichenkette) für reinen Text ohne Hervorhebung.

SpracheKonstanteWeitere akzeptierte Schreibweisen
PowerScriptSYNTAX_POWERSCRIPTpb, powerbuilder
SQLSYNTAX_SQLtsql, plsql
JavaScriptSYNTAX_JAVASCRIPTjs, jsx
JSONSYNTAX_JSONjsonc
C-FamilieSYNTAX_C · SYNTAX_CPP · SYNTAX_CSHARP · SYNTAX_JAVAc++, cxx, cs
HTML / XMLSYNTAX_HTML · SYNTAX_XMLhtm, xhtml, svg
CSSSYNTAX_CSSscss, less
PythonSYNTAX_PYTHONpy
YAMLSYNTAX_YAMLyml
MarkdownSYNTAX_MARKDOWNmd, mkd

Sprachen derselben Familie teilen sich die Hervorhebung (SYNTAX_JAVA färbt wie SYNTAX_C, SYNTAX_XML wie SYNTAX_HTML): Die Konstante, die Sie wählen, dokumentiert Ihre Absicht, das Ergebnis auf dem Bildschirm ist dasselbe. Der Wert unterscheidet nicht zwischen Groß- und Kleinschreibung, und ein unbekannter Name fällt ohne Fehler auf reinen Text zurück.


Eigenschaften #

Inhalt und Sprache #

EigenschaftTypStandardZweck
is_textstring""Der im Editor angezeigte Code. Beim Zurücklesen liefert er den aktuellen Inhalt, die Eingabe des Benutzers eingeschlossen, mit den übergebenen Zeilenenden: ein CRLF-Text wird in CRLF zurückgelesen, ein reiner CR-Text in CR, gefaltet oder nicht; ein Text, der sie mischt, wird in CRLF zurückgelesen. Ein neuer Text wird ab seiner ersten Zeile angezeigt, entfernt die Markierungen von of_add_marker und gilt nicht als geändert (ib_modified)
is_syntaxstring""Sprache der Hervorhebung: Konstanten SYNTAX_* (siehe Tabelle oben). SYNTAX_NONE = reiner Text. Wird so zurückgelesen, wie er geschrieben wurde: SYNTAX_CSHARP bleibt SYNTAX_CSHARP, auch wenn C# die C-Grammatik teilt
ib_readonlybooleanfalseSchreibgeschützter Editor: Der Benutzer kann lesen, ohne ändern zu können
ib_modifiedbooleanfalsetrue, sobald der Text von dem als gespeichert erklärten abweicht: ein neues is_text ist nicht geändert, Eingabe, of_insert_text oder ein Ersetzen machen ihn geändert, Rückgängigmachen bis zum gespeicherten Text setzt ihn wieder auf false. Setzen Sie ihn nach dem Speichern auf false zurück; true erzwingt ihn

Anzeige #

EigenschaftTypStandardZweck
ib_line_numbersbooleantrueBlendet die Zeilennummernleiste links ein oder aus; ausgeblendet behält eine schmale Leiste die Faltmarkierungen und die Diagnosen von of_add_marker
ib_current_linebooleantrueHebt die Zeile hervor, in der die Einfügemarke steht; im Modus ib_wrap deckt das Band alle Reihen der Zeile ab
ib_foldingbooleanfalseOpt-in: erlaubt das Falten der Regionen #region … #endregion (//#region in PowerScript, JavaScript oder C) über die Leiste: #region beginnt gefaltet, #regionopen geöffnet; die Markierungen bleiben auch bei ib_line_numbers = false. Es ist ein Lesemodus: solange er aktiv ist, nimmt der Editor keine Eingabe an, denn das Eingabefeld enthält dann den gefalteten Text und nicht die Quelle; ihn über geschlossenen Regionen einzuschalten vergisst auch den Strg+Z-Verlauf. Eine Markierung ist per Tastatur erreichbar (Tab); Eingabe oder Leertaste faltet sie zu oder auf
ib_wrapbooleanfalseBricht lange Zeilen um, statt seitlich zu scrollen
ii_tab_sizeinteger4Anzahl der Spalten, die ein Tabulator einnimmt, von 1 bis 12 (jeder andere Wert fällt auf 4 zurück); Eingabe nach einer öffnenden Klammer rückt um diese Breite ein
is_font_familystring""Schriftart des Editors (leer = Schriftart mit fester Zeichenbreite aus dem Design)
ii_font_sizeinteger0Schriftgröße in Pixeln (0 = Größe aus dem Design)
EigenschaftTypStandardZweck
ib_search_enabledbooleantrueAktiviert die integrierte Suchleiste (Strg+F, Strg+H zum Ersetzen — siehe „Tastatur“); bei false liefert of_find -4
ib_find_match_casebooleanfalseSuchoption: findet nur Text mit derselben Groß-/Kleinschreibung. Die Schaltfläche Aa der Leiste ist derselbe Schalter; gilt für of_find, of_replace und of_replace_all
ib_find_whole_wordbooleanfalseSuchoption: findet den Text nur als ganzes Wort (der _ gehört zum Wort: ls_a wird in ls_ab nicht gefunden). Schaltfläche ab der Leiste
ib_find_regexbooleanfalseSuchoption: der Text ist ein regulärer Ausdruck (JavaScript-Syntax); der Ersatz von of_replace kann dann $1, $& und $<name> verwenden. Ein ungültiger Ausdruck findet nichts, rahmt das Feld rot ein und lässt of_replace -5 liefern. Schaltfläche .* der Leiste
il_doc_linelong0Bringt die angegebene Zeile in die Mitte der Ansicht und markiert sie mit einem Akzentband (Nummerierung ab 1, wie die Leiste) — die Zeile, auf die eine Dokumentation oder ein Suchergebnis zeigt. Einfügemarke und Auswahl des Benutzers bleiben unverändert (il_caret_line bewegt die Einfügemarke). Eine in einer gefalteten Region verborgene Zeile öffnet diese Region; das Band wird auch im Modus ib_wrap gezeichnet. 0 entfernt das Band; eine Zeile hinter dem Textende markiert nichts und wird so zurückgelesen, wie sie geschrieben wurde; jedes neue is_text entfernt das Band
il_caret_linelong1Die Zeile der Einfügemarke, ab 1, live gelesen (gefaltet: die der Leiste). Das Schreiben setzt die Einfügemarke an den Anfang dieser Zeile und bringt sie auf den Bildschirm — das „Gehe zu Zeile“ eines Compilerfehlers; eine in einer gefalteten Region verborgene Zeile öffnet diese Region, eine Zeile hinter dem Ende bleibt bei der letzten. Mit ib_track_caret folgt ue_caret_changed, wie bei einem Klick — nichts, wenn die Einfügemarke bleibt, wo sie ist
il_caret_columnlong1Die Spalte der Einfügemarke, ab 1, live gelesen: der Rang des Zeichens in seiner Zeile (ein Tabulator zählt als eins). Das Schreiben bewegt die Einfügemarke entlang ihrer Zeile; hinter dem Zeilenende bleibt sie an diesem Ende. Mit ib_track_caret folgt ue_caret_changed, wie bei einem Klick
ib_track_caretbooleanfalseOpt-in: löst bei jeder Bewegung der Einfügemarke ue_caret_changed aus — Geste des Benutzers oder Befehl Ihres Codes; ein neues Dokument (is_text, ein Laden) sagt nichts über die Einfügemarke
ib_allow_dropbooleanfalseOpt-in: nimmt Dateien aus dem Windows-Explorer entgegen; die vollständigen Pfade kommen über ue_drop_files an
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 #

MethodeZweck
of_get_text ( ) → stringLiefert den aktuellen Inhalt — denselben Wert wie is_text, für Code, der einen Methodenaufruf bevorzugt
of_find (string as_text)Öffnet die Suchleiste, trägt den Text ein und hebt alle Vorkommen hervor, gemäß den Optionen ib_find_* (gefaltet nur in den sichtbaren Zeilen). Das erste Vorkommen ab der Einfügemarke wird auf den Bildschirm geholt; die Einfügemarke selbst bewegt sich erst, wenn der Benutzer die Leiste schließt. Ein leerer Text leert das Feld und entfernt die Hervorhebungen. Liefert 0, sobald angewendet, -4, wenn ib_search_enabled false ist, -2, wenn die Komponente nicht erstellt ist
of_insert_text (string as_text)Fügt Text an der Einfügemarke ein, genau so, als hätte der Benutzer ihn getippt: die aktuelle Auswahl wird ersetzt, die Einfügemarke steht danach hinter der Einfügung, und diese wird auf den Bildschirm geholt. Das ist die Methode einer Schaltfläche Ausschnitt einfügen, wo is_text die laufende Arbeit verwerfen würde. Während einer Suche wird an der Einfügemarke des Benutzers eingefügt, nie über dem Treffer. Liegt der Fokus im Editor oder in seiner Suchleiste, läuft die Einfügung über den Bearbeitungsweg des Browsers: Strg+Z macht sie weiterhin rückgängig. Löst ue_changed aus, und mit ib_track_caret folgt ue_caret_changed, wie bei einer Eingabe. Nichts wird eingefügt, solange der Editor schreibgeschützt (ib_readonly) oder gefaltet (ib_folding) ist. Liefert 0, sobald angewendet, -4 bei Schreibschutz oder Faltung, -5 bei leerem Text, -2, wenn die Komponente nicht erstellt ist
of_replace (string as_find, string as_replace)Ersetzt das erste Vorkommen von as_find ab der Einfügemarke (danach wieder von oben) und holt es auf den Bildschirm; die Optionen ib_find_* gelten, und mit ib_find_regex kann der Ersatz $1, $& und $<name> verwenden. Ein Strg+Z macht es rückgängig. Mit ib_track_caret folgt ue_caret_changed, wenn sich die Einfügemarke bewegt. Liefert die Anzahl der ersetzten Vorkommen (1 oder 0, wenn es keines gibt), -4 bei Schreibschutz oder Faltung, -5 bei leerer Suche oder ungültigem Ausdruck, -2, wenn die Komponente nicht erstellt ist
of_replace_all (string as_find, string as_replace)Ersetzt alle Vorkommen von as_find in einem Rückgängig-Schritt. Dieselben Optionen und Codes wie of_replace; liefert die Anzahl der ersetzten Vorkommen
of_selected_text ( ) → stringLiefert den vom Benutzer ausgewählten Text, live gelesen ("" ohne Auswahl), mit den Zeilenenden von is_text
of_select_range (long al_from_line, long al_from_col, long al_to_line, long al_to_col)Wählt von (Zeile, Spalte) bis (Zeile, Spalte) aus, alles ab 1, und holt die Auswahl auf den Bildschirm; die Einfügemarke steht am zuletzt angegebenen Ende, und eine Spalte hinter dem Ende ihrer Zeile bleibt an diesem Ende. Mit ib_track_caret folgt ue_caret_changed, wie bei einem Ziehen. Liefert 0, sobald angewendet, -5 bei einer Zeile außerhalb des Dokuments oder einer Spalte kleiner als 1, -4, solange der Editor gefaltet ist, -2, wenn die Komponente nicht erstellt ist
of_line_count ( )Liefert die Anzahl der Zeilen des Dokuments, gefaltet oder nicht, live gelesen — die Obergrenze eines Dialogs „Gehe zu Zeile“
of_add_marker (long al_line, string as_kind, string as_tooltip)Markiert eine Zeile der Leiste mit einer Diagnose — MARKER_ERROR, MARKER_WARNING oder MARKER_INFO — und einem Tooltip (Markup zulässig): was ein Compiler sagt, dort, wo er es sagt. Mehrere Markierungen können sich eine Zeile teilen: die schwerste bestimmt das Symbol, der Tooltip listet alle auf. Sie gehören zum Dokument: ein neues is_text entfernt sie. Liefert 0, sobald angewendet, -5 bei einer Zeile außerhalb des Dokuments oder einer unbekannten Art, -2, wenn die Komponente nicht erstellt ist
of_remove_marker (long al_line)Entfernt alle Markierungen einer Zeile. Liefert 0, sobald entfernt, -5, wenn die Zeile keine trägt, -2, wenn die Komponente nicht erstellt ist
of_clear_markers ( )Entfernt alle Markierungen der Leiste. Liefert 0, sobald angewendet, -2, wenn die Komponente nicht erstellt ist
of_marker_count ( )Liefert die Anzahl der Markierungen in der Leiste, live gelesen (zwei auf einer Zeile zählen als zwei)
of_reset ( )Setzt alle Eigenschaften auf ihren Standard zurück und leert den Editor. 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 #

EventAusgelöst wenn
ue_changed ( )Der Benutzer hat den Inhalt geändert und seine Eingabe hat sich gesetzt — auch nach of_insert_text oder einem Ersetzen ausgelöst. Das Event trägt nichts: es zu füllen hieße, bei jeder gesetzten Eingabe das ganze Dokument neu zu lesen, für eine Anwendung, die meist nur wissen will, dass es sich geändert hat. Wer den Code will, fragt danach — is_text oder of_get_text(); ib_modified sagt, ob er vom gespeicherten Text abweicht
ue_caret_changed (long al_line, long al_col)Die Einfügemarke hat sich bewegt (Taste, Klick, Ziehen, Eingabe oder Ihr Code); Zeile und Spalte ab 1 gezählt, die Zeile ist im gefalteten Zustand die der Leiste, die Spalte der Rang des Zeichens in seiner Zeile (ein Tabulator zählt als eins). Ihr Code löst es wie die Geste aus (il_caret_line, il_caret_column, of_select_range, of_insert_text, of_replace); nichts, wenn die Einfügemarke bleibt, wo sie ist, und ein neues Dokument (is_text, ein Laden) sagt nichts über die Einfügemarke — erfordert ib_track_caret = true
ue_find_result (long al_count, long al_index)Eine Suche ist abgeschlossen oder springt zu einem anderen Vorkommen: al_count Vorkommen gefunden, al_index = Rang des gerade hervorgehobenen (ab 1). Während der Eingabe wird es nur ausgelöst, wenn sich die Anzahl ändert; das Schließen der Leiste löst es nicht aus; eine leere Suche ebenso wenig
ue_drop_files (string as_files[])Dateien wurden aus Windows abgelegt: vollständige Pfade, ein Eintrag pro Datei. Erfordert ib_allow_drop = true
ue_drag_enter ( )Ein Dateiziehvorgang gelangt auf den Editor (ib_allow_drop)
ue_drag_leave ( )Der Dateiziehvorgang verlässt den Editor
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)

Tastatur #

TasteWirkung
TabRückt bis zum nächsten Tabstopp ein (ii_tab_size); mehrere Zeilen ausgewählt: rückt den ganzen Block ein
Umschalt+TabRückt die Zeile oder den Block aus
EingabeNeue Zeile mit derselben Einrückung, eine Stufe tiefer nach {, ( oder [
Strg+FÖffnet die Suchleiste, mit der Auswahl gefüllt (ib_search_enabled)
Strg+HÖffnet die Leiste mit ihrer Ersetzen-Zeile (nur bei bearbeitbarem Editor)
F3 · Umschalt+F3Nächster · vorheriger Treffer, aus dem Code oder der Leiste
Eingabe · Umschalt+Eingabe (Leiste)Nächster · vorheriger Treffer; im Ersetzen-Feld ersetzt Eingabe den aktuellen Treffer und Strg+Eingabe alle
EscSchließt die Leiste und setzt die Einfügemarke auf den aktuellen Treffer
Tab, dann Eingabe oder Leertaste (Leiste)Erreicht eine Faltmarkierung und faltet sie zu oder auf (ib_folding)

Die Spalte, die ue_caret_changed und il_caret_column melden, ist der Rang des Zeichens in seiner Zeile: ein Tabulator zählt als eins, unabhängig von seiner Breite auf dem Bildschirm.


Beispiele #

Ein Editor für SQL-Abfragen #

// Das Zeichnen waehrend der Einrichtung anhalten
uo_query.of_set_redraw(/*on*/ false)

// SQL-Hervorhebung, dann die anzuzeigende Abfrage
uo_query.is_syntax = uo_query.SYNTAX_SQL
uo_query.is_text   = "-- Beste Kunden nach vereinnahmtem Umsatz~r~n" &
                       + "SELECT c.name, SUM(o.amount) AS total~r~n" &
                       + "FROM customer c~r~n" &
                       + "  INNER JOIN orders o ON o.cust_id = c.id~r~n" &
                       + "WHERE o.status = 'paid'~r~n" &
                       + "GROUP BY c.name~r~n" &
                       + "ORDER BY total DESC"

// Ein einziges Neuzeichnen, alles auf einmal
uo_query.of_set_redraw(/*on*/ true)
// clicked-Event von cb_execute
string ls_sql

// Die Abfrage so ausfuehren, wie sie eingegeben wurde
ls_sql = uo_query.of_get_text()     // die tatsaechliche Eingabe des Benutzers
of_execute(ls_sql)

Ein schreibgeschützter Betrachter #

Ideal, um generierten Code, ein Protokoll oder einen Auszug zu zeigen, den der Benutzer lesen, aber nicht ändern soll.

// PowerScript-Hervorhebung
uo_preview.is_syntax = uo_preview.SYNTAX_POWERSCRIPT

// Ein reiner Betrachter: kein Cursor, keine Leiste, keine Hervorhebung
uo_preview.ib_readonly     = true      // nur lesen, keine Einfuegemarke
uo_preview.ib_line_numbers = false     // blendet die Nummernleiste aus
uo_preview.ib_current_line = false     // keine Hervorhebung der aktuellen Zeile
uo_preview.ib_wrap         = true      // bricht um, statt zu scrollen
uo_preview.ii_tab_size     = 2         // Tabulatoren ueber 2 Spalten dargestellt

// Der anzuzeigende Code
uo_preview.is_text = of_generate_code()

Die Position der Einfügemarke in einer Statusleiste verfolgen #

// Jede Cursorbewegung melden (ue_caret_changed)
uo_editor.ib_track_caret = true       // ausdrueckliches Opt-in : sonst gar kein Event
// ue_caret_changed-Event von uo_editor : (long al_line, long al_col)
uo_status.of_panel(/*key*/ "pos").is_text = "Zeile " + String(al_line) + ", Sp. " + String(al_col)

Ohne ib_track_caret meldet die Einfügemarke nichts: Dieser Auslöser feuert sehr häufig und bleibt abgeschaltet, solange Sie ihn nicht anfordern.

Suchen und zu einer Zeile springen #

// Oeffnet die Suchleiste und hebt alle Vorkommen hervor
uo_editor.of_find(/*text*/ "ll_total")
// ue_find_result-Event von uo_editor : (long al_count, long al_index)
if al_count = 0 then
    uo_status.of_panel(/*key*/ "main").is_text = "Kein Treffer"
else
    uo_status.of_panel(/*key*/ "main").is_text = String(al_index) + " / " + String(al_count)
end if
// Zu der Zeile gehen, die ein Compiler gemeldet hat, und sie in der Leiste markieren
uo_editor.of_add_marker(/*line*/ ll_error_line, /*kind*/ uo_editor.MARKER_ERROR, /*tooltip*/ ls_error_text)
uo_editor.il_caret_line = ll_error_line     // die Einfuegemarke geht dorthin, die Zeile kommt auf den Bildschirm
uo_editor.of_focus_webview()                // der Benutzer korrigiert sofort

Eine aus dem Explorer abgelegte Datei öffnen #

// Accept files dropped from the Explorer
uo_editor.ib_allow_drop = true
// ue_drop_files-Event von uo_editor : (string as_files[])
string ls_content
integer li_file

// as_files[1] traegt den VOLLSTAENDIGEN Pfad der ersten abgelegten Datei
li_file = FileOpen(as_files[1], StreamMode!, Read!)
if li_file > 0 then
    FileReadEx(li_file, ls_content)
    FileClose(li_file)

    // Nach der Dateiendung hervorheben, dann den Inhalt anzeigen
    uo_editor.is_syntax = of_syntax_for_extension(as_files[1])
    uo_editor.is_text   = ls_content
end if

Auf Änderungen reagieren #

// ue_changed-Event von uo_editor : ( )
cb_save.enabled = uo_editor.ib_modified     // Rueckgaengig bis zum gespeicherten Text setzt ihn auf false zurueck
// clicked-Event von cb_save
if of_save_script(uo_editor.is_text) = 1 then
    uo_editor.ib_modified = false     // der gespeicherte Text wird zur Referenz
    cb_save.enabled = false
end if

Das Event wird erst ausgelöst, wenn die Eingabe zur Ruhe gekommen ist: Fortlaufendes Tippen erzeugt nicht ein Event pro Tastendruck.

Eine Variable im ganzen Skript umbenennen #

// Local variables
long ll_count

// Nur ganze Woerter: ll_total2 ist eine andere Variable
uo_editor.ib_find_whole_word = true
ll_count = uo_editor.of_replace_all(/*find*/ "ll_total", /*replace*/ "ldc_amount")   // ein einziges Strg+Z macht alles rueckgaengig

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