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
buttonseparati costano N volte la memoria (ogni componente è una vista del motore).buttonresta 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 #
| Userobject | u_pbt_button |
| Classe degli item | — (componente senza item) |
| Serve per | Sostituire un commandbutton con un pulsante moderno, a tema, con icona e badge |
| Opzioni opt-in | ib_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 #
| Costante | Valore | Per |
|---|---|---|
STYLE_STANDARD · STYLE_PRIMARY · STYLE_FLAT | "standard" "primary" "flat" | is_style |
Proprietà #
| Proprietà | Tipo | Predefinito | Ruolo |
|---|---|---|---|
is_text | string | "" | 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_image | string | "" | Icona mostrata prima dell'etichetta (forme accettate: percorso, mono:, tint:, risorsa di DLL) |
ii_image_size | integer | 0 | Dimensione dell'icona in pixel (0 = la dimensione del tema, 18 pixel) |
is_style | string | "standard" | Aspetto: STYLE_STANDARD, STYLE_PRIMARY (sfondo d'accento, azione principale), STYLE_FLAT (senza bordo) |
ib_enabled | boolean | true | Pulsante 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_default | boolean | false | Pulsante 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_cancel | boolean | false | Pulsante di annullamento: Esc lo attiva ovunque sia il focus nella finestra, finché è attivo |
is_shortcut | string | "" | 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_badge | integer | 0 | Badge contatore nell'angolo superiore finale (destro, sinistro da destra a sinistra); oltre 99 mostra 99+ (0 = nessuno) |
il_badge_color | long | -1 | Sfondo 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_size | integer | 0 | Altezza 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_mouse | boolean | false | Opt-in: attiva ue_mouse_enter / ue_mouse_leave |
is_theme_style | string | "" | Stile visivo del componente (costanti THEME_STYLE_*); vuoto = quello dell'applicazione, seguito a ogni cambio |
is_theme_mode | string | "" | Variante chiara o scura (costanti THEME_MODE_*); vuoto = quella dell'applicazione, seguita a ogni cambio |
il_theme_accent | long | -1 | Colore d'accento di questo componente (-1 = accento dell'applicazione, o quello del tema) |
is_tooltip | string | "" | Tooltip semplice mostrato al passaggio del mouse sul componente |
is_super_tooltip_title | string | "" | Titolo del tooltip avanzato (prevale su is_tooltip) |
is_super_tooltip_text | string | "" | Testo del tooltip avanzato (markup avanzato accettato) |
is_super_tooltip_image | string | "" | Immagine del tooltip avanzato |
Metodi #
| Metodo | Ruolo |
|---|---|
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 #
| Event | Attivato 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 #
- Un solo pulsante
primaryper schermata: è l'azione attesa. ib_defaulteib_cancelsostituiscono la gestione manuale di Invio / Esc nella sua finestra.- Utilizzi
mono:per le icone monocromatiche: seguiranno sia il tema chiaro sia quello scuro. - Chiami
of_reset()prima di riutilizzare un pulsante per un'altra azione.
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.
| Membri | Ruolo | Descritto in |
|---|---|---|
of_reset | Riportare il componente a zero | 3.6 Riportare un componente a zero: of_reset() |
of_register_shortcut · of_clear_shortcuts | Scorciatoie da tastiera del componente | 3.5 Le scorciatoie da tastiera |
of_is_created · of_is_ready · of_get_last_error | Se è nato, se è pronto, cosa è fallito | 3.7 Diagnostica |
of_save_as_png · of_save_as_jpg | Esportare il rendering in immagine | 3.8 Esportare il rendering come immagine |
of_set_redraw | Raggruppare le modifiche in un solo ridisegno | 3.10 Buone pratiche |
of_preload_icons | Icone mostrate senza ritardo | Visualizzazione istantanea: of_icon |
of_set_translation | Tradurre una dicitura del componente | 5.2 Adattare un'etichetta: of_set_translation |
of_focus_webview | Dare il focus al componente | 6.4 Tastiera e focus |
of_print · of_print_to_pdf | Stampare, o scrivere un PDF | 6.9 Stampare |
of_set_property · of_get_property · of_component_name | Pilotare una proprietà per nome | 3.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.