PBToolboxAI v5 ← Site

statictext — u_pbt_statictext #

← Komponentenreferenz · Inhalt des Handbuchs

Rich-Text-Block: Auszeichnung, Ausrichtungen, klickbare Links und Aktionen, Kopfzeilen-Optik, Laufschriftmodus (Marquee) und Ablagebereich für Dateien.

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


Auf einen Blick #

Userobjectu_pbt_statictext
Item-Klasse— (Komponente ohne Items)
WofürEin PowerBuilder-statictext durch einen formatierten, klickbaren Textblock ersetzen, der als Kopfzeile, Laufschriftband oder Ablagebereich dienen kann
Opt-in-Optionenib_auto_height, ib_auto_width, ib_follow_end, ib_track_mouse, ib_track_cycle, ib_allow_drop, ib_selectable, ib_hover_effect, ib_ellipsis_tooltip, ib_marquee_overflow_only, ib_marquee_pause_on_hover, ib_mnemonic, ib_veto_links

Schnellstart #

// open-Event des Fensters
uo_text.is_text = "Willkommen bei [b][accent]PBToolboxAI[/accent][/b][br]" &
                   + "Lesen Sie die [hyperlink=https://pbtoolboxai.net]Dokumentation[/hyperlink]."
uo_text.is_align = uo_text.ALIGN_CENTER
uo_text.is_valign = uo_text.VALIGN_CENTER

Der Text akzeptiert die Rich-Text-Auszeichnung: Diese Komponente holt am meisten daraus heraus — ihre [action=…]-Bereiche lösen ue_action aus und sind auch per Tastatur erreichbar (die Meldungsbox macht sie ebenfalls klickbar; ein [hyperlink=…] öffnet sich überall).


Konstanten #

KonstanteWertFür
ALIGN_START · ALIGN_CENTER · ALIGN_END · ALIGN_JUSTIFY"start" "center" "end" "justify"is_align
VALIGN_TOP · VALIGN_CENTER · VALIGN_BOTTOM"top" "center" "bottom"is_valign

start und end sind logisch: Sie folgen der Schreibrichtung (Sprache und RTL). Die physischen Werte left und right werden weiterhin als Aliasnamen akzeptiert.


Eigenschaften #

Text und Formatierung #

EigenschaftTypStandardZweck
is_textstring""Der angezeigte Text, mit der Rich-Text-Auszeichnung: [b], [i], [u], Farben, [picture=…], [hyperlink=…], [action=…]
is_alignstring"start"Horizontale Ausrichtung: ALIGN_START, ALIGN_CENTER, ALIGN_END, ALIGN_JUSTIFY
is_valignstring"top"Vertikale Ausrichtung innerhalb des Steuerelements: VALIGN_TOP, VALIGN_CENTER, VALIGN_BOTTOM
ib_wrapbooleantrueAutomatischer Zeilenumbruch am Rand. false bricht lange Zeilen nicht mehr um: sie laufen über, und nur die Zeilenwechsel des Textes ([br], ein Zeilenumbruch) beginnen eine neue Zeile
ib_ellipsisbooleanfalseKürzt bei ib_wrap = false den Überlauf mit Auslassungspunkten, statt ihn hart abzuschneiden
ib_ellipsis_tooltipbooleanfalseOpt-in: Wenn der Text nicht in das Feld passt, ihn vollständig in einem Tooltip zeigen (Auszeichnung inbegriffen). Ersetzt nie einen Tooltip, den Sie selbst mit is_tooltip oder is_super_tooltip_* gesetzt haben: Ihrer gewinnt
is_font_familystring""Standardschriftart des Blocks (leer = Schriftart des Designs)
ii_font_sizeinteger0Standardgröße in Punkt, von 6 bis 200 wie das [size]-Tag (0 = Größe des Designs oder die von PBT_SetDefaultFont). Ein Wert außerhalb dieses Bereichs wird auf die nächste Grenze zurückgeführt und so zurückgelesen, wie er angewendet wurde
il_text_colorlong-1Textfarbe als RGB() (-1 = Farbe des Designs). [color]-Tags haben für ihren Abschnitt weiterhin Vorrang. Eine SYSTEMfarbe von PowerBuilder (WindowText, ButtonFace…) bedeutet die Farbe des Designs und wird als -1 zurückgelesen
ii_line_spacinginteger0Zeilenabstand in Prozent, von 50 bis 400 (150 = 1,5 Zeilen; 0 = Standard). Ein Wert außerhalb dieser Grenzen wird auf die nächste Grenze gesetzt und so zurückgelesen, wie er angewendet wurde
ib_enabledbooleantrueBlock aktiv oder ausgegraut. Ausgegraut sind Links, Aktionen und Faltköpfe inaktiv und verlassen die Tab-Reihenfolge; auf der Fläche des Designs nimmt der Text das Grau des Designs an, auf einem eigenen Hintergrund (il_back_color, ein [bk]-Abschnitt) bleiben seine Farben erhalten und werden abgeschwächt: er bleibt lesbar
ib_selectablebooleanfalseOpt-in: erlaubt dem Benutzer, den Text auszuwählen und mit Strg+C zu kopieren (standardmäßig ausgeschaltet, wie bei einer Beschriftung). Das Loslassen der Maus nach einer Auswahl löst kein ue_clicked aus
ii_max_linesinteger0Höchstens N angezeigte Zeilen (0 = keine Grenze): die letzte endet mit „…“, der Text gilt für ue_text_overflow und ib_ellipsis_tooltip als abgeschnitten, und ib_auto_height misst die gezeigten Zeilen. Ohne Wirkung auf eine Laufschrift
ib_mnemonicbooleanfalseOpt-in: Das & im Text markiert den Buchstaben einer Tastenkombination, wie bei einem PowerBuilder-StaticText — „&Name:“ zeigt das N unterstrichen, && schreibt ein &. Wie in PowerBuilder gehört die Tastenkombination selbst dem Steuerelement, das die Beschriftung benennt (sein Accelerator). Standardmäßig aus: „R&D“ bleibt wie geschrieben; is_text wird mit seinen & zurückgelesen

Blockoptik (die „Kopfzeilen“-Optik) #

EigenschaftTypStandardZweck
il_back_colorlong-1Blockhintergrund als RGB() (-1 = Hintergrund des Designs). Mit ii_corner_radius folgt er der Rundung, und außerhalb der Ecken zeigt der Block die Farbe des Objekts, auf dem er liegt. Es bleibt PowerBuilder gemeldet, wenn das Design wechselt. Eine SYSTEMfarbe von PowerBuilder (ButtonFace…) bedeutet den Hintergrund des Designs und wird als -1 zurückgelesen
il_border_colorlong-1Rahmenfarbe (-1 = kein Rahmen)
ii_border_widthinteger0Rahmenstärke in Pixeln (0 = kein Rahmen)
ii_corner_radiusinteger0Radius der Eckenrundung, in Pixeln. Rahmen UND Hintergrund il_back_color folgen ihm
ii_paddinginteger-1Innenabstand in Pixeln: -1 = der des Designs (Standard), 0 = kein Abstand (der Text steht bündig mit dem Rand eines benachbarten Feldes), darüber = Pixel
ib_hover_effectbooleanfalseOpt-in: leichte Abdunklung beim Überfahren mit der Maus (Aufhellung bei einem dunklen Design), für eine Beschriftung, die wie eine Schaltfläche wirkt

Laufschriftmodus (Marquee) #

EigenschaftTypStandardZweck
ib_marqueebooleanfalseVerwandelt den Block in ein horizontal laufendes Band
ii_marquee_speedinteger60Laufgeschwindigkeit, in Pixeln pro Sekunde (0 = Standardgeschwindigkeit, 60)
is_marquee_directionstringMARQUEE_STARTLaufrichtung: MARQUEE_START (zum Anfang der Leserichtung hin) oder MARQUEE_END. Die physischen Aliasnamen "left" / "right" werden akzeptiert: sie bleiben physisch, unabhängig von der Leserichtung. Jeder andere Wert gilt als MARQUEE_START und wird so zurückgelesen
ib_marquee_overflow_onlybooleanfalseOpt-in: nur laufen, wenn der Text zu breit für das Feld ist. Ein Laufband, das einen ohnehin lesbaren Text bewegt, ist reines optisches Rauschen. Standardmäßig aus, damit ib_marquee = true weiterhin es läuft bedeutet
ib_marquee_pause_on_hoverbooleanfalseOpt-in: den Lauf anhalten, solange der Zeiger über dem Block steht, damit ein langer Text lesbar bleibt. Die Schleifenposition bleibt erhalten: beim Verlassen springt nichts

Optionale Interaktionen #

EigenschaftTypStandardZweck
ib_allow_dropbooleanfalseOpt-in: nimmt aus dem Windows-Explorer abgelegte Dateien an; die vollständigen Pfade kommen über ue_drop_files an. Ein deaktivierter Text (ib_enabled = false) lehnt jedes Ablegen ab
ib_track_mousebooleanfalseOpt-in: aktiviert ue_mouse_enter / ue_mouse_leave
ib_track_cyclebooleanfalseOpt-in: aktiviert ue_cycle, ausgelöst am Ende jedes Laufschrift-Durchlaufs; ohne es läuft der Text lautlos
ib_auto_heightbooleanfalseOpt-in: der Block misst seine ideale Höhe und passt die Größe des Userobjects an; siehe Gemeinsame Basis
ib_auto_widthbooleanfalseOpt-in: das Userobject übernimmt die BREITE seines Textes — die längste Zeile, ohne Umbruch (die [br] zählen), plus Innenabstand und Rahmen; ein neuer Text, eine Schrift oder ein Innenabstand passen sie erneut an, und ue_auto_width nennt die übernommene Breite. Eine Laufschrift (ib_marquee) hat keine natürliche Breite und meldet keine
ib_follow_endbooleanfalseOpt-in, für ein mit of_append_text geschriebenes Protokoll: die Ansicht bleibt UNTEN, während Zeilen hinzukommen — außer der Leser hat nach oben gescrollt, um eine ältere Zeile zu lesen: er wird nie davon weggerissen
il_max_log_lineslong0Für ein mit of_append_text geschriebenes Protokoll: die Anzahl behaltener Zeilen (0 = alle). Darüber hinaus gehen die ältesten, vom Bildschirm UND aus is_text; der mit is_text gesetzte Text zählt als eine Zeile. Ein Absenken kürzt sofort
ii_max_widthinteger0Mit ib_auto_width: die größte Breite des Userobjects, in Pixeln (0 = keine Grenze). Ein längerer Text bricht bei dieser Breite um, und ib_auto_height übernimmt die Höhe
ib_veto_linksbooleanfalseOpt-in: Bevor sich ein [hyperlink] öffnet, wird ue_hyperlink_opening gefragt; FALSE hält den Link geschlossen, und Sie behandeln ihn selbst (Ihr eigener Browser, eine Bestätigung). Standardmäßig aus, wie jedes abbrechbare Ereignis der Bibliothek: der Link öffnet sich sofort
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_reset ( )Setzt alle Eigenschaften auf ihren Standard zurück und leert den Text. 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
of_refresh_parent_color ( )Liest die Farbe des Objekts, auf dem der Block liegt, erneut. Mit il_back_color und ii_corner_radius zeigen die abgerundeten Ecken diese Farbe, die beim Setzen dieser beiden Eigenschaften gelesen wird: rufen Sie sie auf, nachdem Sie die BackColor Ihres Fensters geändert oder den Block zu einem anderen Elternobjekt verschoben haben. Liefert 0 nach dem Senden, -2 wenn die Komponente nicht erzeugt ist
of_scroll_to_end ( )Springt an das Ende des Textes. Für ein Protokoll, dessen neueste Zeile unten steht: sonst rutscht sie aus dem Blickfeld, sobald der Text höher wird als der sichtbare Bereich. Liefert 0 nach dem Senden, -2 wenn die Komponente nicht erzeugt ist
of_append_text (string as_markup)Fügt EINE Zeile am Ende des Textes hinzu, für ein Protokoll: nur diese Zeile geht an die Komponente und nur sie wird gezeichnet — is_text bei jeder Zeile neu zu schreiben, sendete und zeichnete das ganze Protokoll erneut. as_markup nimmt dasselbe Markup wie is_text; eine Zeile beginnt ohne offenes Tag, und eine leere Zeile behält die Höhe einer Zeile. Zurückgelesen enthält is_text alle Zeilen, verbunden durch [br], jede schließt die Tags, die sie offen ließ. Mit ib_follow_end bleibt die Ansicht unten, mit il_max_log_lines gehen die ältesten Zeilen; ein Bildschirmleser kündigt jede neue Zeile an. Liefert 0 nach dem Senden, -2 wenn die Komponente nicht erzeugt ist
of_clear ( )Leert den Text, alle Zeilen eines Protokolls eingeschlossen, und behält alle anderen Einstellungen (of_reset setzt sie alle auf ihre Standardwerte zurück). Liefert 0 nach dem Senden, -2 wenn die Komponente nicht erzeugt ist

Events #

EventAusgelöst wenn
ue_clicked ( )Linksklick auf den Block — nicht ausgelöst auf einem [action]- oder [hyperlink]-Bereich (keine Dopplung), auf der Kopfzeile eines [foldarea] (Zuklappen löst nichts aus) und nicht nach einer Textauswahl
ue_hyperlink (string as_url, boolean ab_opened)Eine [hyperlink=url]-Zone wurde angeklickt. Der Browser öffnet sich von selbst: Das Event erreicht Sie zusätzlich, um den Klick zu protokollieren oder mehr damit zu tun. ab_opened sagt, ob er sich wirklich geöffnet hat: FALSE für ein anderes Schema als http, https oder mailto (of_get_last_error() sagt warum) oder wenn ue_hyperlink_opening ihn geschlossen hielt
ue_hyperlink_opening (string as_url) → booleanAbbrechbar, wird gefragt, bevor sich eine [hyperlink=url]-Zone öffnet, nur wenn ib_veto_links = true. FALSE hält den Link geschlossen, und Sie behandeln ihn selbst: ue_hyperlink kommt dann mit ab_opened = FALSE. Standard: TRUE
ue_action (string as_key)Auf einen [action=id]-Bereich wurde geklickt: Sie hängen dort Ihren eigenen Code ein. Der Bereich ist auch per Tastatur erreichbar: mit Tab hin, dann Eingabe oder Leertaste
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 Datei-Drag betritt die Komponente (ib_allow_drop)
ue_drag_leave ( )Das Datei-Drag verlässt die Komponente
ue_auto_height (long al_height)Der Block hat seine ideale Höhe berechnet — erfordert ib_auto_height = true
ue_auto_width (long al_width)Der Block hat eine neue Breite übernommen, in PowerBuilder-Einheiten — erfordert ib_auto_width = true
ue_rclicked ( )Rechtsklick auf den Block
ue_double_clicked ( )Doppelklick auf den Block, wie beim nativen PowerBuilder-StaticText. Die vorausgehenden Einfachklicks werden ebenfalls ausgelöst, in derselben Reihenfolge. Nicht auf einer [action]- oder [hyperlink]-Zone, die einen eigenen Kanal haben
ue_text_overflow (boolean ab_truncated)Der Text passt nicht mehr in das Feld — oder wieder. Nur bei Änderung ausgelöst, nie in Serie: ein umbrechender Block gilt als abgeschnitten, wenn er unten beschnitten wird, ein einzeiliger, wenn er seitlich abgeschnitten wird. Behandeln Sie es, um eine Spalte zu verbreitern, eine Mehr anzeigen-Schaltfläche anzubieten oder einfach ib_ellipsis_tooltip einzuschalten
ue_mouse_enter ( )Die Maus tritt ein — erfordert ib_track_mouse = true
ue_mouse_leave ( )Die Maus verlässt den Block — erfordert ib_track_mouse = true
ue_cycle ( )Nur im Laufschriftmodus: der Text hat gerade einen vollständigen Durchlauf beendet (eine Animation INNERHALB des Textes zählt nie als Durchlauf) — erfordert ib_track_cycle = true
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)

Beispiele #

Eine Abschnittskopfzeile #

Vollflächiger Hintergrund, zentrierter weißer Text und eine an den Inhalt angepasste Höhe: Der Block liest sich wie eine echte Titelleiste.

// Die Anzeige einfrieren, solange alles gesetzt wird
uo_header.of_set_redraw(/*on*/ false)

// Der Titel, zentriert
uo_header.is_text  = "[b]Verkaufs-Dashboard"
uo_header.is_align = uo_header.ALIGN_CENTER

// Vollflaechiger Hintergrund und gut lesbarer weisser Text
uo_header.il_back_color = RGB(/*red*/ 60, /*green*/ 110, /*blue*/ 190)
uo_header.il_text_color = RGB(/*red*/ 255, /*green*/ 255, /*blue*/ 255)
uo_header.ii_padding = 14

// Der Block schmiegt sich an seinen Inhalt : er liest sich wie eine Titelleiste
uo_header.ib_auto_height = true

// Alles wird auf einmal gezeichnet
uo_header.of_set_redraw(/*on*/ true)
// ue_auto_height-Event von uo_header
of_reposition_below_header(al_height)   // verschiebt den Inhalt unter die Kopfzeile
// Ein Link auf eine Webseite und eine Aktion, die Ihre Anwendung behandelt (ue_action)
uo_text.is_text = "Ihre Lizenz läuft am [b]31.12.[/b] ab. " &
                   + "[hyperlink=https://pbtoolboxai.net]Mehr erfahren[/hyperlink] " &
                   + "oder [action=renew]jetzt verlängern[/action]."
// ue_action-Event von uo_text : (string as_key)
choose case as_key
    case "renew" ; of_open_renewal()
end choose

ue_hyperlink ist für URLs gedacht (der Browser öffnet sich von selbst); [action=id] ist die richtige Wahl, wenn der Klick innerhalb Ihrer Anwendung bleiben soll. Die Variante [invisibleaction=id] löst dasselbe ue_action aus, ohne wie ein Link auszusehen.

Ein einklappbarer Block #

// Zwei einklappbare Abschnitte : der zweite beginnt eingeklappt
uo_recap.is_text = "[b]Bestellung 2026-0148[/b][br]" &
                   + "[foldarea:[b]Lieferung[/b]]Am 12.07. versandt, innerhalb von 48 Stunden.[/foldarea]" &
                   + "[foldarea-closed:[i]Rechtliche Hinweise[/i]]Ruckgabe innerhalb von 14 Tagen moglich.[/foldarea]"

// Der Block schrumpft, wenn ein Abschnitt eingeklappt wird
uo_recap.ib_auto_height = true

Ein [foldarea:Titel] setzt eine anklickbare Kopfzeile über seinen Inhalt: Der Leser klappt den Abschnitt mit einem Klick ein, und der Marker wechselt von − zu +. [foldarea-closed:Titel] erzeugt denselben Block, von Anfang an eingeklappt. Blöcke lassen sich verschachteln, und das Einklappen löst kein Event aus: Es ist eine Sache des Lesens, nicht des Codes. Ist ib_auto_height aktiv, wird die Höhe bei jedem Ein- und Ausklappen erneut gemeldet. Der Titel ist Auszeichnungstext: [foldarea:[b][accent]Auftrag 2026-0148[/accent][/b]] setzt seinen eigenen fett und in Akzentfarbe.

Ein laufendes Band #

// Die Meldung des Bandes
uo_banner.is_text = "[b]Hinweis[/b] -- der Dienst bleibt am Freitag, dem 12., geschlossen."

// Laufschriftmodus, wie ein Nachrichtenticker
uo_banner.ib_marquee = true
uo_banner.ii_marquee_speed = 90        // Pixel pro Sekunde
uo_banner.is_marquee_direction = uo_banner.MARQUEE_START

Der Lauf wiederholt sich ohne Leerlauf. Zum Anhalten setzen Sie ib_marquee wieder auf false: Der Text nimmt sein normales Layout wieder an.

Sobald ib_track_cycle = true gesetzt ist, wird bei jedem vollständigen Durchlauf des Textes das Event ue_cycle ausgelöst — praktisch, um mehrere Meldungen abwechselnd anzuzeigen:

// In ue_cycle des Bandes : zur naechsten Meldung wechseln
ii_message = Mod(ii_message, UpperBound(is_messages)) + 1
uo_banner.is_text = is_messages[ii_message]

Ein Ablagebereich für Dateien #

// Aus dem Windows-Explorer gezogene Dateien annehmen
uo_zone.ib_allow_drop = true

// Was die Zone anzeigt, zentriert
uo_zone.is_text = "[size=32][accent][b]Dateien hier ablegen[/b][/accent][/size][br][br]" &
                  + "Ziehen Sie eine oder mehrere Dateien aus dem Windows-Explorer."
uo_zone.is_align  = uo_zone.ALIGN_CENTER
uo_zone.is_valign = uo_zone.VALIGN_CENTER
// ue_drop_files-Event von uo_zone : (string as_files[])
// Local variables
integer li

// Das Ablegen ist vorbei : die Zone sieht wieder normal aus
uo_zone.ii_border_width = 0

// Jede abgelegte Datei, eine nach der anderen
for li = 1 to UpperBound(as_files)
    of_import(as_files[li])       // as_files[li] = VOLLSTAENDIGER Pfad der Datei
next
// ue_drag_enter-Event von uo_zone : das Ziel waehrend des Ueberfahrens hervorheben
uo_zone.il_border_color = RGB(/*red*/ 21, /*green*/ 101, /*blue*/ 192)
uo_zone.ii_border_width = 2
// ue_drag_leave-Event von uo_zone : das Ziehen ist weg, die Zone sieht wieder normal aus
uo_zone.ii_border_width = 0

Die empfangenen Pfade sind vollständig: Sie können sie direkt an FileOpen oder an Ihre eigene Importroutine übergeben.

Eine Beschriftung, die sich wie eine Schaltfläche verhält #

// Ein Text, der sich wie eine Link-Schaltflaeche verhaelt
uo_link.is_text = "Alles auswählen"
uo_link.il_text_color = RGB(/*red*/ 21, /*green*/ 101, /*blue*/ 192)
uo_link.ii_padding = 8
uo_link.ii_corner_radius = 6
uo_link.ib_hover_effect = true       // reagiert auf den Mauszeiger wie eine Schaltflaeche
// ue_clicked-Event von uo_link
of_select_all()

Ein Protokoll, Zeile für Zeile geschrieben #

Jeder Aufruf sendet nur die hinzugefügte Zeile; ib_follow_end hält die letzte sichtbar, solange der Leser nicht nach oben scrollt, und il_max_log_lines behält nur die neuesten.

// Local variables
long ll_row

// Once, when the window opens : the view follows the end, the 500 newest lines are kept
uo_log.ib_follow_end = true
uo_log.il_max_log_lines = 500
uo_log.is_text = "[b]Import[/b]"

// For every row imported : one line, sent alone
for ll_row = 1 to 2000
    uo_log.of_append_text(/*markup*/ "Row " + String(ll_row) + " [color=#2e7d32]imported[/color]")
next

Ein Etikett so breit wie sein Text #

// A status chip : background, rounded corners, and the width of its text
uo_status.is_text = "[b]Status :[/b] connected"
uo_status.il_back_color = RGB(/*red*/ 232, /*green*/ 245, /*blue*/ 233)
uo_status.ii_corner_radius = 12
uo_status.ib_auto_width = true

Eine Feldbeschriftung wie in PowerBuilder #

Eine aus einem PowerBuilder-StaticText übernommene Beschriftung behält ihr &: mit ib_mnemonic wird der Buchstabe unterstrichen und && schreibt ein &. Wie in PowerBuilder ist die Tastenkombination selbst der Accelerator des Feldes, das die Beschriftung benennt.

// The & marks the shortcut letter : "Customer name:" with the C underlined
uo_label.ib_mnemonic = true
uo_label.is_text = "&Customer name:"

Mit ib_veto_links wird ue_hyperlink_opening gefragt, bevor sich ein [hyperlink] öffnet: FALSE hält ihn geschlossen — öffnen Sie ihn auf Ihre Weise oder fragen Sie nach einer Bestätigung — und ue_hyperlink kommt dann mit ab_opened = FALSE.

// Ask before a link opens
uo_text.ib_veto_links = true
uo_text.is_text = "See the [hyperlink=https://pbtoolboxai.net/doc/]documentation[/hyperlink]."
// ue_hyperlink_opening event of uo_text : (string as_url) returns boolean
// Only the pages of the company site open, every other link stays shut
return Left(as_url, 24) = "https://pbtoolboxai.net/"

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
is_accessible_name · is_accessible_descriptionName und Beschreibung, die ein Bildschirmleser sagt3.4 Optionale Eigenschaften und Events

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