PBToolboxAI v4 ← Site

10. Migrare dalla 2.0 alla 3.0 #

← Migrare dalla 1.0 alla 2.0 · Sommario · Migrare dalla 3.0 alla 4.0 →


La 3.0 non rimuove nessuna firma dei ventuno componenti della 2.0 e non ne cambia nessuna: il Suo codice compila così com'è. Cambiano alcuni comportamenti, e uno solo chiede di rileggere il codice — le posizioni, che ora contano da 1, come tutto ciò che PowerBuilder conta. Questa pagina espone prima questo cambiamento, con la ricetta, poi gli altri comportamenti che un cliente può notare, poi ciò che è stato aggiunto.

10.1 Le posizioni contano da 1 #

Nella 2.0 una posizione passata a un metodo (of_move_page(key, ai_index)…) partiva da 0, mentre la posizione restituita da un evento di riordino (ue_tab_reordered(key, ai_index)…) partiva da 1: un indice ricevuto non poteva essere ripassato così com'era. Nella 3.0 tutto parte da 1 — 1 è il primo posto. Gli eventi non sono cambiati; sono i metodi e le proprietà ad averli raggiunti.

Cosa2.03.0
tabof_insert_page, of_move_page : 01
listbarof_insert_section, of_move_section, of_insert_item, of_move_item : 01
toolbarof_add_bar(key, band, index), of_move_item, of_insert_button, ii_band, ii_index : 01
statusbarof_insert_panel, of_move_panel, of_insert_menu_item, of_move_menu_item : 01
stepbarof_insert_step, of_move_step : 01
tilesboxof_insert_tile, of_move_tile, event ue_tile_moved : 01
dockcontainerof_move_panel(key, target, position, index): 0, -1 = ultimo1, 0 o meno = ultimo
ribbonof_insert_tab : 01

Gli eventi ue_tab_reordered, ue_item_reordered e ue_bar_reordered restituivano già una posizione da 1: sono invariati. Per un inserimento nella statusbar o nella stepbar, una posizione di 0 o meno aggiunge in fondo (come un indice negativo nella 2.0); per uno spostamento vale il primo posto.

Prima / dopo #

// 2.0 : the first place was 0
uo_tabs.of_move_page(/*key*/ "orders", /*index*/ 0)
uo_toolbar.of_add_bar(/*key*/ "format", /*band*/ 1, /*index*/ 0)
uo_toolbar.of_bar(/*key*/ "format").ii_band = 0

// 3.0 : the first place is 1
uo_tabs.of_move_page(/*key*/ "orders", /*index*/ 1)
uo_toolbar.of_add_bar(/*key*/ "format", /*band*/ 2, /*index*/ 1)
uo_toolbar.of_bar(/*key*/ "format").ii_band = 1

La ricetta #

Cerchi nel Suo codice of_insert_, of_move_, of_add_bar(, .ii_band e .ii_index: aggiunga 1 a ogni posizione scritta come letterale. Una posizione che viene da un evento di riordino o da un ciclo for li = 1 to … è già giusta — è tutto il senso del cambiamento. Una posizione calcolata da 0 (li - 1) perde il suo - 1.

10.2 Le voci a cascata restituiscono l'indirizzo completo #

Una voce posta in un sottomenu è ora nominata con tutto il suo indirizzo, quello dato per aggiungerla. Nella 2.0 l'evento perdeva il livello del sottomenu, e due sottomenu con una voce dello stesso nome si confondevano.

Cosa2.03.0
toolbar ue_menu_selected"file/saveas/png8""file/saveas/fmt_other/png8"
ribbon ue_menu_selected"home/clip/paste/pdf""home/clip/paste/more/pdf"
ribbon ue_app_menu_selected"pdf""export/pdf"
menubar ue_item_selected"export/pdf" (print/pdf scelto)"print/pdf"
radialmenu of_item("csv"), of_add_item("import/csv/x")il primo csv trovatodecide l'indirizzo

Una voce di primo livello ha un solo livello e non cambia. E of_add_menu_item della toolbar accetta finalmente l'indirizzo a quattro livelli ("bar/dropdown/entry/sub") che la documentazione mostrava: era rifiutato con -5.

10.3 Altri comportamenti che può notare #

Cosa2.03.0
Testo ricco ([b], [accent]…)una [parola] sconosciuta spariva con il testo seguente: report[final].pdf → report.pdfmostrata così com'è; solo i veri tag sono interpretati
ue_panel_rclicked(al_x, al_y) della statusbarpixel dentro il componentepixel dello schermo, come promesso: da passare così a un menu contestuale
Rileggere un colore (il_text_color, il_accent…)restituiva 0 (nero), impostato o noil colore impostato; -1 quando nessuno (quello del tema). Un colore di badge non impostato restituisce sempre 0
ii_doc_line del code editor, rilettol'indice interno (riga − 1, -1 = nessuna)la riga impostata; 0 = nessuna
ue_error di picture e shell explorermai sollevato (intercettato dalla base)sollevato; gli errori di script restano su ue_script_error

Il componente button resta fornito e supportato, ma è deprecato a favore di buttonbar: una fila di pulsanti sta in un solo componente, dove dieci button ne fanno dieci.

10.4 Ciò che è stato aggiunto #

Nulla di quanto segue chiede di modificare il codice. I nuovi componenti della 3.0 sono presentati nelle note di versione.

OggettoAggiunto
u_pbt_base (every visual component)of_set_property (string as_name, string as_value) → long, of_get_property (string as_name) → string, of_component_name () → string
n_pbt_messageboxof_add_choice (string as_key, string as_title, string as_description) → long, of_choose (long al_hwnd) → string
n_pbt_utilsof_dir_has_subfolders (string as_dir) → boolean, of_speech_languages (ref string as_tags[]) → integer, of_speech_voices (ref string as_names[], ref string as_langs[]) → integer, of_locale_name (string as_tag) → string

n_pbt_json, che la 2.0 forniva come strumento interno non documentato, diventa il componente json della 3.0 e cambia nomi: of_str → of_add_string, of_bool → of_add_boolean, of_num → of_add_number, of_raw → of_add_raw, of_arr → of_set_array, of_members → of_set_members; ora restituiscono tutti un long. Se il Suo codice lo usava, sono gli unici nomi da cambiare.


← Migrare dalla 1.0 alla 2.0 · Sommario · Migrare dalla 3.0 alla 4.0 →