PBToolboxAI v4 ← Site

button — u_pbt_button #

← Riferimento dei componenti · Sommario della guida

Pulsante a tema: testo e icona, stili, badge contatore, scorciatoia da tastiera, pulsanti predefinito e di annullamento.

⚠️ Più pulsanti? Preferisci buttonbar: una fila in un solo componente, dove N button separati costano N volte la memoria (ogni componente è una vista del motore). button resta supportato per il codice esistente.

▶ Vederlo dal vivo — Applicazione dimostrativa, riquadro Button: l'anteprima, il codice che lo produce e questa pagina, affiancati.


In breve #

Userobjectu_pbt_button
Classe degli item— (componente senza item)
Serve perSostituire un commandbutton con un pulsante moderno, a tema, con icona e badge
Opzioni opt-inib_track_mouse

Avvio rapido #

// event open della finestra
uo_button.is_text  = "&Salva"                // & = lettera sottolineata : Alt+S lo attiva
uo_button.is_style = uo_button.STYLE_PRIMARY // pulsante dell'azione principale
uo_button.is_image = "mono:img\save.svg"     // icona ricolorata dal tema
uo_button.is_shortcut = "Ctrl+S"             // scorciatoia mostrata e attiva
uo_button.is_tooltip = "Salva la pratica corrente"
// event ue_clicked di uo_button
of_save()

Costanti #

CostanteValorePer
STYLE_STANDARD · STYLE_PRIMARY · STYLE_FLAT"standard" "primary" "flat"is_style

Proprietà #

ProprietàTipoPredefinitoRuolo
is_textstring""Etichetta. Accetta il testo formattato con tag e il mnemonico & (&Salva sottolinea la S, e Alt+S lo attiva ovunque sia il focus nella finestra, dopo le scorciatoie esplicite e mai se disattivato; una barra dei menu PB che usa la stessa lettera la perde); && mostra una e commerciale letterale. Un'etichetta fatta di sola immagine ([picture=…]) è ammessa
is_imagestring""Icona mostrata prima dell'etichetta (forme accettate: percorso, mono:, tint:, risorsa di DLL)
ii_image_sizeinteger0Dimensione dell'icona in pixel (0 = la dimensione del tema, 18 pixel)
is_stylestring"standard"Aspetto: STYLE_STANDARD, STYLE_PRIMARY (sfondo d'accento, azione principale), STYLE_FLAT (senza bordo)
ib_enabledbooleantruePulsante attivo o disattivato. Disattivato, ignora mouse e tastiera, esce dall'ordine di tabulazione e lascia alla finestra Invio, Esc, la sua scorciatoia e il suo mnemonico
ib_defaultbooleanfalsePulsante predefinito: Invio lo attiva ovunque sia il focus nella finestra, finché è attivo; un bordo d'accento lo segnala. Con due pulsanti predefiniti vince il più vicino al focus, e a parità nessuno
ib_cancelbooleanfalsePulsante di annullamento: Esc lo attiva ovunque sia il focus nella finestra, finché è attivo
is_shortcutstring""Scorciatoia da tastiera ("Ctrl+S", "F5", "Ctrl+Shift+N"), attiva ovunque sia il focus nella finestra e aggiunta al tooltip ("Salva (Ctrl+S)"). I nomi dei tasti si scrivono in inglese (Enter, Esc, Del, PageUp…); una scorciatoia che la finestra non sa attivare (modificatore o tasto sconosciuti) viene rifiutata e si rilegge ""
ii_badgeinteger0Badge contatore nell'angolo superiore finale (destro, sinistro da destra a sinistra); oltre 99 mostra 99+ (0 = nessuno)
il_badge_colorlong-1Sfondo del badge, in RGB PowerBuilder (-1 = non impostato: il colore che proviene dal tema; 0 è il nero, come per ogni altro colore). Il colore del testo viene scelto automaticamente affinché il contatore resti leggibile
ii_badge_sizeinteger0Altezza del badge in pixel (0 = la dimensione che proviene dal tema). La dimensione del carattere segue da sola: il contatore resta centrato qualunque sia la dimensione
ib_track_mousebooleanfalseOpt-in: attiva ue_mouse_enter / ue_mouse_leave
is_theme_stylestring""Stile visivo del componente (costanti THEME_STYLE_*); vuoto = quello dell'applicazione, seguito a ogni cambio
is_theme_modestring""Variante chiara o scura (costanti THEME_MODE_*); vuoto = quella dell'applicazione, seguita a ogni cambio
il_theme_accentlong-1Colore d'accento di questo componente (-1 = accento dell'applicazione, o quello del tema)
is_tooltipstring""Tooltip semplice mostrato al passaggio del mouse sul componente
is_super_tooltip_titlestring""Titolo del tooltip avanzato (prevale su is_tooltip)
is_super_tooltip_textstring""Testo del tooltip avanzato (markup avanzato accettato)
is_super_tooltip_imagestring""Immagine del tooltip avanzato

Metodi #

MetodoRuolo
of_reset ( )Riporta tutte le proprietà ai valori predefiniti. Restituisce 0 una volta applicato, -2 se il componente non è creato
of_set_redraw (boolean)Raggruppa una raffica di modifiche in un solo rendering. Restituisce 0 una volta applicato, -2 se il componente non è creato
of_save_as_png (string) · of_save_as_jpg (string)Esporta il rendering come immagine. Restituisce 0 una volta scritta l'immagine, -4 se la scrittura fallisce, -2 se il componente non è creato

Event #

EventAttivato quando
ue_clicked ( )Si fa clic sul pulsante, oppure viene attivato da Invio / Esc / dalla sua scorciatoia
ue_rclicked ( )Clic destro sul pulsante
ue_mouse_enter ( )Il mouse entra — richiede ib_track_mouse = true
ue_mouse_leave ( )Il mouse esce — richiede ib_track_mouse = true
ue_ready ( )Il componente ha terminato il caricamento; tutto ciò che è stato inviato prima è stato riprodotto
ue_runtime_missing ( )Il runtime WebView2 è assente: il componente resta vuoto
ue_bg_color (long al_color)Il componente ha calcolato il colore di sfondo del proprio tema; l'userobject lo ha già adottato (backcolor)

Esempi #

I tre stili #

// Il pulsante principale : risponde al tasto Invio
uo_ok.is_text     = "Conferma"
uo_ok.is_style    = uo_ok.STYLE_PRIMARY
uo_ok.ib_default  = true          // tasto Invio

// Il pulsante di annullamento : risponde al tasto Esc
uo_cancel.is_text   = "Annulla"
uo_cancel.is_style  = uo_cancel.STYLE_STANDARD
uo_cancel.ib_cancel = true       // tasto Esc

// Un pulsante di aiuto discreto
uo_help.is_text  = "Guida"
uo_help.is_style = uo_help.STYLE_FLAT   // discreto, senza bordo

Icona e badge di notifica #

// Un'icona piu grande e un badge contatore
uo_messages.is_text  = "Messaggi"
uo_messages.is_image = "mono:img\mail.svg"
uo_messages.ii_image_size = 20
uo_messages.ii_badge = 12             // badge "12"
// Aggiornare il contatore: il badge scompare a 0
uo_messages.ii_badge = ll_unread
// Un badge rosso per un avviso, invece del colore del tema.
// Il colore del testo viene scelto da solo per restare leggibile.
uo_messages.il_badge_color = RGB(/*red*/ 200, /*green*/ 30, /*blue*/ 30)

// Tornare al colore che proviene dal tema
uo_messages.il_badge_color = -1

Etichetta arricchita #

// Testo ricco : grassetto e dimensione ridotta, o un'immagine nel testo
uo_button.is_text = "[b]Esporta[/b] [size-=20]· CSV[/size-=20]"
uo_button.is_text = "Stato [picture=mono:img\ok.svg,14,14]"

Pulsante dell'azione principale con scorciatoia e aiuto #

// Bloccare il disegno durante le impostazioni
uo_submit.of_set_redraw(/*on*/ false)

// Testo, stile, scorciatoia, pulsante predefinito e tooltip ricco
uo_submit.is_text     = "&Conferma l'ordine"
uo_submit.is_style    = uo_submit.STYLE_PRIMARY
uo_submit.is_shortcut = "Ctrl+Enter"
uo_submit.ib_default  = true
uo_submit.is_super_tooltip_title = "Conferma"
uo_submit.is_super_tooltip_text  = "Invia l'ordine al fornitore." &
                                    + "[br][br][size-=15]Azione irreversibile.[/size-=15]"

// Un solo ridisegno, con tutto
uo_submit.of_set_redraw(/*on*/ true)

Reagire al passaggio del mouse #

// Raise ue_mouse_enter and ue_mouse_leave when the pointer comes and goes
uo_button.ib_track_mouse = true
// event ue_mouse_enter di uo_button
uo_status.of_panel(/*key*/ "main").is_text = "Salva la pratica corrente"

Buone pratiche #

Ereditato dalla base comune #

Questi membri esistono su tutti i componenti visivi — non sono propri di questo. Sono descritti una sola volta, nei capitoli trasversali; questa tabella dice solo dove leggerli.

MembriRuoloDescritto in
of_resetRiportare il componente a zero3.6 Riportare un componente a zero: of_reset()
of_register_shortcut · of_clear_shortcutsScorciatoie da tastiera del componente3.5 Le scorciatoie da tastiera
of_is_created · of_is_ready · of_get_last_errorSe è nato, se è pronto, cosa è fallito3.7 Diagnostica
of_save_as_png · of_save_as_jpgEsportare il rendering in immagine3.8 Esportare il rendering come immagine
of_set_redrawRaggruppare le modifiche in un solo ridisegno3.10 Buone pratiche
of_preload_iconsIcone mostrate senza ritardoVisualizzazione istantanea: of_icon
of_set_translationTradurre una dicitura del componente5.2 Adattare un'etichetta: of_set_translation
of_focus_webviewDare il focus al componente6.4 Tastiera e focus
of_print · of_print_to_pdfStampare, o scrivere un PDF6.9 Stampare
of_set_property · of_get_property · of_component_namePilotare una proprietà per nome3.1 Il motore delle proprietà

Due aiuti non sono ereditati: of_icon e of_escape_markup vivono su n_pbt_utils. Ne dichiari uno — n_pbt_utils lnv_utils, niente da creare — e li chiami su di esso.


← Riferimento dei componenti · Sommario della guida