PBToolboxAI v5 ← Site

menubar — u_pbt_menubar #

← Riferimento dei componenti · Indice della guida

Barra dei menu dell'applicazione: menu, sottomenu, voci spuntabili, separatori, icone e scorciatoie — tutto disegnato dalla libreria, senza alcun menu di Windows.

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


In breve #

Userobjectu_pbt_menubar
Classe di itemn_pbt_menubar_item (una voce) · n_pbt_menubar_menu (un menu della barra)
Serve aDare alla Sua finestra la barra dei menu dell'applicazione, con lo stesso tema di tutto il resto
PrincipioDichiara i menu, poi le loro voci; ogni voce si ritrova tramite l'indirizzo menu/id

Avvio rapido #

// event open della finestra
uo_menus.of_add_menu(/*key*/ "file", /*text*/ "File")
uo_menus.of_add_item(/*keys*/ "file/open", /*text*/ "Apri")
uo_menus.of_add_item(/*keys*/ "file/save", /*text*/ "Salva")
// event ue_item_selected : (string as_keys)
choose case as_keys
	case "file/open"; of_open_document()
	case "file/save"; of_save_document()
end choose

Il modello: tre livelli, una chiave per livello #

Una barra dei menu ha tre livelli, e ciascuno si indica con la sua chiave:

LivelloAggiunto daChiave
Il menu della barraof_add_menula sua chiave, file
La voce di un menuof_add_iteml'indirizzo menu/voce, file/open
La sotto-voce di una voceof_add_iteml'indirizzo menu/voce/sottovoce, file/export/pdf — profondo quanto serve

Una chiave è unica solo sotto il suo genitore: per questo una voce si designa sempre con il suo indirizzo completo, prima il menu — mai con la sola chiave. Due menu possono quindi avere ciascuno la propria voce open, e due sottomenu il proprio pdf (file/export/pdf, file/print/pdf), senza disturbarsi. Una chiave non contiene né / né |, non è vuota e non inizia con __: le aggiunte la rifiutano (-5), come rifiutano un indirizzo già preso o un genitore mai aggiunto.

Un separatore non ha chiave: of_add_separator traccia una linea alla fine di un menu (file) o della cascata di una voce (file/export), e dopo non c'è nulla da rileggere.


Proprietà #

ProprietàTipoPredefinitoRuolo
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 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
ib_wrapbooleanfalsefalse (predefinito): la barra resta su una riga; i titoli che non entrano, a partire dalla fine, passano nel menu di un chevron in fondo (le loro voci in cascata), e l'altezza non cambia più. true: la barra va a capo e annuncia la nuova altezza (ue_auto_height) — ciò che faceva prima della 4.0
ib_track_hoverbooleanfalseSottoscrizione a ue_item_hover: senza di essa i menu a discesa non segnalano nemmeno la voce puntata — un evento scatenato a ogni movimento del puntatore viene inviato solo a un'applicazione che lo ha chiesto

Proprietà di una voce — n_pbt_menubar_item #

Ottenute con of_item(indirizzo) — of_item("file/export/pdf"). Un indirizzo di un solo livello designa un menu, non una voce: il suo handle non cambia nulla, usate of_menu.

ProprietàTipoPredefinitoRuolo
is_textstring—Cambia l'etichetta della voce, a caldo
ib_enabledbooleantrueVoce attiva; una voce disattivata non risponde più al clic
ib_visiblebooleantrueVoce tolta dall'elenco senza essere rimossa — sottomenu e scorciatoia sospesi con lei; conserva la sua chiave e torna com'era. Una scorciatoia sospesa conserva la sua combinazione: non arriva nemmeno alla sua applicazione; is_shortcut = "" gliela restituisce
is_shortcutstring""L'acceleratore mostrato a destra della voce (Ctrl+S) — e attivo: la combinazione solleva ue_item_selected per quella voce, ovunque sia il focus. In un menu si imparano le scorciatoie di un'applicazione; un tasto mostrato che non fa nulla insegna il contrario. Tasti: una lettera, una cifra, da F1 a F24, Enter, Esc, Del, Insert, Home, End, PageUp, PageDown, e con Ctrl o Alt anche +, -, ,, ., le frecce (Left…), Space, Tab, Backspace (Ctrl++ per lo zoom). Una scorciatoia va su una foglia: su una voce che apre una cascata non è né mostrata né attivata. Una stringa vuota toglie entrambi. Armato una volta che la voce esiste (prima of_add_item): su un indirizzo che non designa alcuna voce, non viene armato nulla. Prima di agire, lancia ue_menu_opening del suo menu
ib_checkedbooleanfalseSpunta mostrata davanti alla voce — per un'opzione che si attiva e si disattiva
is_imagestring""L'icona della voce, cambiata al volo: la voce conserva il suo posto nell'elenco. Stessi percorsi di of_add_item (mono:, tint:, file.dll:NOME); una stringa vuota la toglie
is_groupstring""Rende la voce una voce radio: le voci di uno stesso gruppo sotto lo stesso genitore si escludono — spuntarne una (ib_checked = true, o la scelta dell'utente) toglie la spunta alle altre, e un pallino tondo sostituisce la spunta. ue_item_selected dice sempre quale è stata scelta. Una stringa vuota la rende di nuovo una voce ordinaria
is_tonestring""Il tono del comando: il suo testo, a riposo, in un colore del tema chiaro o scuro — TONE_DANGER per quello che distrugge, TONE_WARN, TONE_SUCCESS, TONE_INFO; vuoto o TONE_NEUTRAL = il testo del tema. Puntata, la voce prende i colori di passaggio del tema; un il_text_color della voce prevale. Le costanti sono su u_pbt_menubar
il_accentlong-1Accento di questa voce: la spunta e il bordo quando è puntata (-1 = quello del tema)
il_back_colorlong-1Sfondo di questa voce nell'elenco, a riposo
il_text_colorlong-1Colore del testo di questa voce
il_back_color_hoverlong-1Sfondo di questa voce quando è puntata
il_text_color_hoverlong-1Colore del testo di questa voce quando è puntata
is_tooltipstring""Conservata e rileggibile, ma una voce dell'elenco non mostra alcun tooltip: l'elenco nativo non ne ha. Solo i titoli dei menu mostrano il loro (of_menu)
is_super_tooltip_titlestring""Titolo del suo tooltip avanzato — conservato, non mostrato (vedi is_tooltip)
is_super_tooltip_textstring""Testo del suo tooltip avanzato — conservato, non mostrato
is_super_tooltip_imagestring""Immagine del suo tooltip avanzato — conservata, non mostrata

Proprietà di un menu — n_pbt_menubar_menu #

Ottenute con of_menu(chiave) — of_menu("file"). Colori e tooltip appaiono sul titolo del menu nella barra.

ProprietàTipoPredefinitoRuolo
is_textstring—Etichetta del menu, & compreso (mnemonico), cambiata senza ricostruire la barra
ib_enabledbooleantrueMenu ingrigito: non si apre più, le sue voci e le loro scorciatoie con lui; la tastiera lo salta
ib_visiblebooleantrueIl menu lascia la barra — voci e scorciatoie addormentate con lui — e vi torna tale e quale. Le scorciatoie addormentate conservano la loro combinazione: non arriva nemmeno alla sua applicazione
is_alignstring"start"u_pbt_menubar.ALIGN_END colloca il menu in fondo alla barra, come Aiuto — con quelli che lo seguono nello stesso allineamento, dopo di esso; ALIGN_START (predefinito) lo rimette tra gli altri. Logico: il fondo è il lato sinistro in un layout da destra a sinistra. Con il chevron, i titoli in fondo si ripiegano per primi
il_accentlong-1Accento di questo menu: una linea sotto il titolo finché il suo elenco è aperto (-1 = nessuno)
il_back_colorlong-1Sfondo del suo titolo, a riposo
il_text_colorlong-1Colore del testo del suo titolo, a riposo
il_back_color_hoverlong-1Sfondo del suo titolo al passaggio o aperto
il_text_color_hoverlong-1Colore del testo del suo titolo al passaggio o aperto
is_tooltipstring""Tooltip mostrato quando il puntatore sosta sul suo titolo
is_super_tooltip_titlestring""Titolo del tooltip avanzato del suo titolo
is_super_tooltip_textstring""Testo di quel tooltip avanzato (markup ricco accettato)
is_super_tooltip_imagestring""Immagine di quel tooltip avanzato

Metodi #

MetodoRuolo
of_add_menu (string as_key, string as_text)Aggiunge un menu alla barra. Restituisce 0 una volta applicato, -5 se la chiave è rifiutata (vuota, con / o una barra verticale, che inizia con __, o già presa), -2 se il componente non è creato
of_add_item (string as_keys, string as_text)Aggiunge una voce al suo indirizzo: file/open nel menu File, file/export/pdf sotto la voce Export, profondo quanto serve. Restituisce 0 una volta applicato, -5 se l'indirizzo è rifiutato: meno di due livelli, un livello vuoto, una chiave con / o una barra verticale o che inizia con __, un menu o una voce genitore mai aggiunti, o un indirizzo già preso. -2 se il componente non è creato
of_add_item (string as_keys, string as_text, string as_image, boolean ab_checked)Lo stesso, con l'icona e la spunta. Per ingrigire la voce, ora o più tardi, passate dal suo handle: of_item(indirizzo).ib_enabled = false. Restituisce 0 una volta applicato, -5 se l'indirizzo è rifiutato: meno di due livelli, un livello vuoto, una chiave con / o una barra verticale o che inizia con __, un menu o una voce genitore mai aggiunti, o un indirizzo già preso. -2 se il componente non è creato
of_add_separator (string as_keys)Traccia una linea di separazione alla fine di un menu (file) o della cascata di una voce (file/export). Restituisce 0 una volta applicato, -5 se a quell'indirizzo non è stato aggiunto nulla, -2 se il componente non è creato
of_add_header (string as_keys, string as_text) → longAggiunge un'intestazione di sezione alla fine di un menu (view) o della cascata di una voce (view/panels): una riga di titolo sopra le voci che la seguono, fino alla prossima intestazione o separatore. Non è una voce — mai scelta, mai contata da of_count, né nel limite demo — e non viene disegnata quando tutte le voci che introduce sono nascoste. Restituisce 0 una volta aggiunta, -5 se a quell'indirizzo non è stato creato nulla, -2 se il componente non è creato
of_item (string as_keys) → n_pbt_menubar_itemHandle di una voce, tramite il suo indirizzo — of_item("file/export/pdf") —, per leggerne o impostarne le proprietà. È esattamente ciò che restituisce ue_item_selected: l'argomento si ridà tale e quale qui. Mai la sola chiave: due sottomenu possono avere ciascuno il proprio pdf, e solo l'indirizzo li distingue. Un indirizzo di un livello designa un menu: il suo handle non cambia nulla, usate of_menu
of_menu (string as_key) → n_pbt_menubar_menuHandle di un menu di primo livello, per leggerlo o cambiarlo al volo — disattivarlo, nasconderlo, rinominarlo, allinearlo in fondo, colorarlo — senza ricostruire la barra; ib_visible lo toglie dalla barra, voci e scorciatoie sospese con lui
of_remove_item (string as_keys) → longRimuove una voce, al suo indirizzo (file/open, file/export/pdf) — con la sua cascata; le altre restano. I suoi handle sono liberati e la sua scorciatoia disarmata: il tasto torna alla vostra applicazione. Per svuotare una cascata mantenendo la voce al suo posto: of_clear_items. Restituisce 0 una volta applicato, -5 se a quell'indirizzo non vive alcuna voce, -2 se il componente non è creato
of_remove_menu (string as_key) → longRimuove un menu di primo livello, con le sue voci — handle liberati, scorciatoie disarmate. La barra viene ridisegnata e la sua altezza riannunciata. Restituisce 0 una volta applicato, -5 per un menu mai aggiunto, -2 se il componente non è creato
of_insert_item (string as_keys, string as_text, integer ai_index) → longInserisce una voce a un rango del suo elenco invece che alla fine: as_keys è l'indirizzo che avrà (file/recent), ai_index il suo posto tra le voci di quell'elenco, a partire da 1 (0 o meno = in testa; oltre la fine = alla fine). Separatori e intestazioni non contano: la voce va subito prima di quella che occupava quel rango. Un elenco di file recenti resta così al suo posto, sopra Esci. Restituisce 0 una volta applicato, -5 se l'indirizzo è rifiutato (come of_add_item), -2 se il componente non è creato
of_insert_item (string as_keys, string as_text, string as_image, boolean ab_checked, integer ai_index) → longLo stesso, con l'icona e la spunta, come of_add_item. Restituisce 0 una volta applicato, -5 se l'indirizzo è rifiutato, -2 se il componente non è creato
of_clear_items (string as_keys) → longSvuota un menu (file) o la cascata di una voce (file/recent) e mantiene il menu o la voce al suo posto — ciò che serve a un elenco di file recenti ricostruito a ogni apertura. Le voci che se ne vanno portano con sé i loro handle e le loro scorciatoie. Restituisce 0 una volta applicato, -5 se a quell'indirizzo non è stato creato nulla, -2 se il componente non è creato
of_open (string as_key) → longApre il menu a discesa di un menu di primo livello dal codice, come farebbe un clic sul suo titolo: prima parte ue_menu_opening, il menu a discesa compare alla sua risposta, poi ue_item_selected o ue_menu_closed. Un menu ripiegato nel chevron si apre dal chevron. Restituisce 0 una volta richiesto, -5 per un menu sconosciuto, nascosto o disattivato, -2 se il componente non è creato
of_close ( ) → longChiude il menu a discesa visibile — o un menu che si sta ancora aprendo — senza scelta: segue ue_menu_closed, come per un clic fuori. Se nulla è aperto, non succede nulla. Restituisce 0 una volta richiesto, -2 se il componente non è creato
of_is_open ( ) → booleanTRUE dal momento in cui un menu si apre — il suo ue_menu_opening è partito — finché non si chiude, con una scelta o senza. Letto nel componente, mai in una copia
of_load_menu (menu am_menu) → longCostruisce tutta la barra da un menu PowerBuilder — il menu di una finestra: ogni elemento di am_menu diventa un menu della barra, i suoi elementi le voci, cascate comprese, con il loro testo (segni & mantenuti), il loro stato (Enabled, Checked, Visible), l'immagine della barra degli strumenti quando è un file, e il loro Shortcut, mostrato e armato. Le chiavi sono i ClassName degli elementi: m_file/m_export/m_pdf. La barra resta viva: prima di ogni apertura (e prima che una scorciatoia agisca) viene eseguito il Clicked del titolo, come fa PowerBuilder, poi ogni elemento viene riletto: il suo testo (compresa la scorciatoia scritta dopo una tabulazione), Enabled, Checked e Visible. Scegliere una voce esegue prima il Clicked del suo elemento, poi ue_item_selected; un elemento disattivato nel frattempo non esegue nulla (ue_menu_closed). Un Clicked non trova ParentWindow: tenete la finestra in una variabile d'istanza del menu. Il menu sostituisce ciò che la barra conteneva; tenete vivo l'oggetto menu. Restituisce 0 una volta caricato, -5 se am_menu non è valido, -2 se il componente non è creato
of_loaded_item (string as_keys) → menuL'elemento di menu PowerBuilder da cui proviene un menu o una voce (of_load_menu), tramite il suo indirizzo — per leggere ciò che il menu sa e la barra no, il suo MicroHelp per una riga d'aiuto in ue_item_hover. Un indirizzo che non proviene da un menu restituisce un riferimento non valido: verificatelo con IsValid
of_clear ( )Svuota la barra — menu e voci; i loro handle sono liberati e le scorciatoie delle voci disarmate. Restituisce 0 una volta applicato, -2 se il componente non è creato
of_reset ( )Svuota la barra e 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 #

EventScatta quando
ue_menu_opening (string as_key)Lanciato quando un menu di primo livello sta per aprirsi — e il menu a discesa attende: si apre solo quando l'evento è tornato. Attivate, disattivate o riempite qui le sue voci: il cambiamento si vede a questa apertura, non alla successiva. Lanciato anche prima che una scorciatoia di una delle sue voci agisca, come fa Windows: Incolla disattivato o riattivato qui risponde allo stesso modo a Ctrl+V. Il chevron lo lancia una volta per ogni menu che mostra. Ogni ue_menu_opening è seguito da esattamente un ue_item_selected o un ue_menu_closed — compresa un'apertura abbandonata prima di mostrarsi: ciò che ha preparato si può sempre disfare
ue_menu_closed (string as_key)Un menu si è chiuso senza scelta: dall'utente (clic fuori, Esc, o scivolamento verso il menu vicino), dal vostro codice che rimuove, svuota, nasconde o disattiva il menu aperto o chiama of_close, per un'apertura abbandonata prima che il suo menu a discesa compaia (scivolamento rapido, Esc, finestra che perde il focus), e per una scorciatoia la cui voce è stata disattivata da ue_menu_opening. Disfate qui ciò che ue_menu_opening aveva preparato (un'anteprima, una selezione). Una scelta lancia invece ue_item_selected, e of_reset non lancia nulla
ue_item_selected (string as_keys)L'utente ha scelto una voce, o premuto la sua scorciatoia. as_keys è il suo indirizzo, prima il menu — file/open, file/export/pdf: la sola chiave non dice da quale sottomenu viene, e due sottomenu possono avere ciascuno la propria. Lo stesso testo si ridà tale e quale a of_item. Una voce ingrigita, nascosta o rimossa mentre il suo elenco era aperto non solleva nulla. Una voce di un menu PowerBuilder (of_load_menu) ha già eseguito il Clicked del suo elemento
ue_item_hover (string as_keys)Con ib_track_hover = true: la voce sotto il puntatore o la tastiera in un menu a discesa aperto, con il suo indirizzo (file/export/pdf) — anche una voce disattivata, il suo aiuto può dire perché. Scatenato una volta per voce, poi con un indirizzo vuoto alla chiusura del menu (prima di ue_item_selected su una scelta): scrivete il testo di aiuto di una barra di stato, poi svuotatelo. Nel menu a discesa del chevron, un menu ripiegato sorvolato restituisce la sola chiave (tools): l'aiuto di quel menu
ue_auto_height (long al_height)La barra annuncia l'altezza che le serve — riposizioni ciò che sta sotto
ue_ready ( )Il componente ha finito di caricare; 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 tema; l'userobject l'ha già adottato (backcolor)

Una riga, per impostazione predefinita. I titoli che non entrano passano nel chevron in fondo alla barra (ib_wrap = false, il valore predefinito): l'altezza resta quella di una riga e ue_auto_height viene scatenato una volta. Con ib_wrap = true la barra va a capo: non scorre mai, la sua altezza segue le righe e ue_auto_height vi dice di quanto a ogni cambio di larghezza. Aprire il chevron lancia ue_menu_opening per ogni menu che mostra (e ue_menu_closed per ciascuno alla chiusura): un'applicazione che riempie i suoi elenchi all'apertura li riempie tutti.


Da tastiera #

TastoEffetto
Alt · F10Dà la tastiera alla barra e sottolinea le lettere dei menu, come in qualunque applicazione Windows; una seconda pressione la restituisce; Alt agisce al rilascio, da solo: Alt+Maiusc (cambio di layout) o Alt+Tab non lo accendono
»Il chevron dei titoli che non entrano: le frecce vi si fermano come su un titolo, Invio o Giù apre l'elenco dei menu nascosti, e Alt + la lettera di un menu nascosto apre quel menu dal chevron
Alt + letteraApre il menu di quella lettera (&File) da qualunque controllo della finestra — un campo, un DataWindow. Una scorciatoia Alt+lettera registrata dalla sua applicazione ha la precedenza. Due menu sulla stessa lettera: la banda passa dall'uno all'altro, Invio apre. Una lettera accentata o non latina si digita come sulla tastiera (&Édition: Alt + il tasto della É). Aperto da tastiera, il menu ha la prima voce evidenziata: Invio la sceglie
FreccePercorrono i menu e le loro voci, saltando i menu ingrigiti; la destra apre una sotto-voce, la sinistra risale. In scrittura da destra a sinistra (RTL) tutto si capovolge: sulla barra, nel menu a tendina (allineato al bordo destro del suo titolo) e nelle cascate, che si aprono a sinistra — la sinistra apre, la destra risale
InvioIn un menu a tendina: sceglie la voce evidenziata (ue_item_selected). Su un titolo della barra, Invio, Spazio o Freccia giù aprono il menu. Spazio non sceglie una voce — è anche la regola di Windows
EscChiude il menu aperto, o esce dalla modalità menu (dopo Alt o F10), poi restituisce il focus al controllo che lo aveva. Esc resta alla barra: non preme il pulsante Annulla della finestra

Una barra dei menu non tiene mai il focus. Un clic su un titolo, poi una scelta col mouse: la tastiera torna al controllo in cui si digitava prima che ue_item_selected parta. Modifica > Incolla incolla quindi nel campo in modifica, e GetFocus() lo nomina nell'evento. Anche un clic che non apre nulla — su un titolo disattivato, o sulla parte vuota della barra — lascia la tastiera al controllo in cui si stava scrivendo.


Esempi #

Una barra dei menu completa #

// Bloccare il disegno durante la costruzione
uo_menus.of_set_redraw(/*on*/ false)

// Il menu File, con un'icona su Apri e una linea prima di Esci
uo_menus.of_add_menu(/*key*/ "file", /*text*/ "&File")
uo_menus.of_add_item(/*keys*/ "file/open", /*text*/ "&Apri...", /*image*/ "mono:img\packimages.dll:svg/samples/folder-open", /*checked*/ false)
uo_menus.of_add_separator(/*keys*/ "file")
uo_menus.of_add_item(/*keys*/ "file/quit", /*text*/ "&Esci")

// Un sottomenu: Esporta, poi i suoi due formati
uo_menus.of_add_item(/*keys*/ "file/export", /*text*/ "&Esporta")
uo_menus.of_add_item(/*keys*/ "file/export/csv", /*text*/ "CSV")
uo_menus.of_add_item(/*keys*/ "file/export/pdf", /*text*/ "PDF")

// Il menu Visualizza: un'opzione che si spunta
uo_menus.of_add_menu(/*key*/ "view", /*text*/ "&Visualizza")
uo_menus.of_add_item(/*keys*/ "view/grid", /*text*/ "&Griglia", /*image*/ "", /*checked*/ true)

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

Spuntare, togliere, disattivare #

// L'utente ha invertito la visualizzazione della griglia
uo_menus.of_item(/*keys*/ "view/grid").ib_checked = not uo_menus.of_item(/*keys*/ "view/grid").ib_checked
// Una voce che non ha piu senso si disattiva, non sparisce:
// l'utente deve poter vedere che esiste
uo_menus.of_item(/*keys*/ "file/save").ib_enabled = false

Voci radio e una scorciatoia di zoom #

// Due voci RADIO: spuntarne una toglie la spunta all'altra, un pallino sostituisce la spunta
uo_menus.of_add_item(/*keys*/ "view/small", /*text*/ "Icone &piccole")
uo_menus.of_add_item(/*keys*/ "view/large", /*text*/ "Icone &grandi")
uo_menus.of_item(/*keys*/ "view/small").is_group = "size"
uo_menus.of_item(/*keys*/ "view/large").is_group = "size"
uo_menus.of_item(/*keys*/ "view/large").ib_checked = true

// Lo zoom: Ctrl++ e mostrato E attivo, ovunque sia il focus
uo_menus.of_add_item(/*keys*/ "view/zoomin", /*text*/ "&Ingrandisci")
uo_menus.of_item(/*keys*/ "view/zoomin").is_shortcut = "Ctrl++"

Ricostruire la barra #

// Cambiare area di lavoro: si svuota e si ricostruisce
// of_set_redraw evita di ridisegnare a ogni riga
uo_menus.of_set_redraw(/*on*/ false)
uo_menus.of_clear()
uo_menus.of_add_menu(/*key*/ "tools", /*text*/ "&Strumenti")
uo_menus.of_set_redraw(/*on*/ true)

Una barra stretta, Aiuto in fondo, un testo di aiuto nella barra di stato #

// Aiuto in fondo alla barra ; cio che non ci sta passa nel chevron
uo_menus.of_add_menu(/*key*/ "help", /*text*/ "&Aiuto")
uo_menus.of_add_item(/*keys*/ "help/about", /*text*/ "Informazioni")
uo_menus.of_menu(/*key*/ "help").is_align = u_pbt_menubar.ALIGN_END

// Intestazioni di sezione in View
uo_menus.of_add_header(/*keys*/ "view", /*text*/ "Pannelli")
uo_menus.of_add_item(/*keys*/ "view/tree", /*text*/ "Albero")
uo_menus.of_add_item(/*keys*/ "view/output", /*text*/ "Output")

// Un testo d'aiuto nella barra di stato per la voce puntata
uo_menus.ib_track_hover = true

// ue_item_hover (string as_keys) di uo_menus : vuoto alla chiusura del menu a discesa
choose case as_keys
	case "file/save"
		st_status.Text = "Salva il documento"
	case else
		st_status.Text = ""
end choose

Un elenco di file recenti riempito all'apertura #

// Local variables
long ll_i

// Recent al SUO posto in File, dichiarato una volta : le sue voci si scrivono a ogni apertura
uo_menus.of_insert_item(/*keys*/ "file/recent", /*text*/ "&Recenti", /*index*/ 3)

// ue_menu_opening (string as_key) di uo_menus : il menu a discesa lo attende. File : solo le voci
// di Recent, che resta al suo posto. Edit : Incolla segue gli appunti di ADESSO - per un
// clic come per Ctrl+V.
choose case as_key
	case "file"
		uo_menus.of_clear_items(/*keys*/ "file/recent")
		for ll_i = 1 to UpperBound(is_recent_files)
			uo_menus.of_add_item(/*keys*/ "file/recent/doc" + String(ll_i), /*text*/ is_recent_files[ll_i])
		next
	case "edit"
		uo_menus.of_item(/*keys*/ "edit/paste").ib_enabled = (Clipboard() <> "")
end choose

// ue_menu_closed (string as_key) di uo_menus : chiuso senza scelta - disfare cio che
// ue_menu_opening aveva preparato
st_status.Text = ""

Riprendere il menu PowerBuilder di una finestra #

// Local variables
menu lm_item

// Il menu della finestra diventa la barra : titoli, voci, scorciatoie, stati.
// im_frame e una variabile d'istanza (m_frame), tenuta finche la barra la usa.
im_frame = create m_frame
uo_menus.of_load_menu(/*menu*/ im_frame)

// Il menu resta il riferimento : disattivate un elemento, la barra lo rilegge alla prossima apertura
im_frame.m_edit.m_paste.Enabled = false

// ue_item_hover (string as_keys) di uo_menus : il MicroHelp dell'elemento di menu
lm_item = uo_menus.of_loaded_item(/*keys*/ as_keys)
if IsValid(lm_item) then st_status.Text = lm_item.MicroHelp

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_count · of_keys_at · of_hasPercorrere ciò che il componente contiene3.2 Gli item
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à
is_accessible_name · is_accessible_descriptionIl nome e la descrizione che dice un lettore di schermo3.4 Proprietà ed event opzionali

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 · Indice della guida