dockcontainer — u_pbt_dockcontainer #
← Referência dos componentes · Índice do guia
Painéis acopláveis ao estilo do Visual Studio: acoplagem por arrastar e largar, empilhamento em separadores, divisores redimensionáveis, janelas flutuantes, ocultação automática — e gravação/reposição da disposição.
▶ Ver ao vivo — Aplicação de demonstração, mosaico Dock container: a pré-visualização, o código que o produz e esta página, lado a lado.
Em resumo #
| Userobject | u_pbt_dockcontainer |
| Classe de items | n_pbt_dock_panel (um painel) |
| Serve para | Dar a uma window PowerBuilder a ergonomia de um IDE moderno: o próprio utilizador organiza os seus painéis e a disposição é reencontrada na sessão seguinte |
Tal como em tab, cada painel aloja um controlo PowerBuilder verdadeiro (dragobject): userobject, DataWindow ou outro componente PBToolboxAI. Ver Alojar controlos reais do PowerBuilder.
Início rápido #
// event open da window : os controlos de painel ja estao colocados sobre ela
uo_dock.of_add_panel(/*key*/ "document", /*position*/ "", /*relative_to*/ "", /*size*/ 0, /*title*/ "Document", /*content*/ uo_editor)
// O explorador, acoplado ao inicio do documento, com 260 pixels
uo_dock.of_add_panel(/*key*/ "explorer", /*position*/ uo_dock.POSITION_START, /*relative_to*/ "document", /*size*/ 260, /*title*/ "Explorador", /*content*/ uo_tree)
// As propriedades, acopladas ao fim do documento, com 300 pixels
uo_dock.of_add_panel(/*key*/ "properties", /*position*/ uo_dock.POSITION_END, /*relative_to*/ "document", /*size*/ 300, /*title*/ "Propriedades", /*content*/ uo_props)
// A zona central : nao pode ser fechada pela acoplagem, nem flutuar, nem ser ocultada
uo_dock.is_main = "document"
Propriedades #
| Propriedade | Tipo | Predefinição | Função |
|---|---|---|---|
is_main | string | "" | Chave do painel principal: a zona de documento central, que não pode ser ocultada nem destacada, e sobre a qual nenhum painel é empilhado. Definida antes de adicionar esse painel, é guardada e aplicada no seu of_add_panel; "" retira o painel principal |
ib_veto_close | boolean | false | Opt-in: perguntar antes de um painel se fechar — a cruz do seu cabeçalho, Fechar / Fechar os outros no menu, a cruz de um painel deslizante e of_close_panel (dispara ue_panel_closing, que pode recusar; uma ordem recusada devolve -4). Desativado por omissão, como todo evento cancelável da biblioteca: defina true para manter aberto um painel com trabalho não guardado |
is_theme_style | string | "" | Estilo visual do componente (constantes THEME_STYLE_*); vazio = o da aplicação, seguido a cada mudança |
is_theme_mode | string | "" | Variante clara ou escura (constantes THEME_MODE_*); vazio = a da aplicação, seguida a cada mudança |
il_theme_accent | long | -1 | Cor de destaque deste componente (-1 = destaque da aplicação, ou o do tema) |
is_tooltip | string | "" | Tooltip simples apresentado ao passar sobre o componente |
is_super_tooltip_title | string | "" | Título do tooltip enriquecido (prevalece sobre is_tooltip) |
is_super_tooltip_text | string | "" | Texto do tooltip enriquecido (aceita marcação enriquecida) |
is_super_tooltip_image | string | "" | Imagem do tooltip enriquecido |
Posições de acoplagem #
As constantes do componente alimentam as_position em of_add_panel e of_move_panel:
| Constante | Valor | Efeito |
|---|---|---|
POSITION_START | "start" | O novo painel acopla-se do lado do início de leitura do painel de referência (à esquerda numa escrita da esquerda para a direita) |
POSITION_END | "end" | … do lado do fim de leitura |
POSITION_TOP | "top" | … por cima |
POSITION_BOTTOM | "bottom" | … por baixo |
POSITION_STACK | "stack" | O painel é empilhado em separador sobre o painel de referência. Valor adotado se as_position estiver vazio |
Propriedades de um painel — n_pbt_dock_panel #
Obtidas através de of_panel(chave).
| Propriedade | Tipo | Predefinição | Função |
|---|---|---|---|
is_title | string | "" | Título apresentado no separador do painel; vazio (nenhum título dado), o separador mostra a chave e o painel principal não tem cabeçalho — dar-lhe um título depois fá-lo aparecer. Aceita a formatação com etiquetas |
is_short_title | string | "" | Forma curta do título, para os locais onde falta espaço: a calha de um painel afixado (sempre — é uma faixa estreita) e o separador de uma pilha, mas apenas quando o título completo já não cabe, o que é medido e não adivinhado. O cabeçalho do painel mantém o título completo. "" = sem forma curta |
ib_visible | boolean | true | Mostra ou oculta este painel. O painel principal não se oculta; ocultar um painel flutuante fecha a sua janela, e ele regressará acoplado ao seu lugar |
ib_pinned | boolean | true | true = fixado no lugar; false = todo o grupo do painel (separadores incluídos) recolhe-se em patilhas junto ao bordo. Uma patilha expande o seu painel ao passar o ponteiro (após 400 ms) ou de imediato com um clique; aberto ao passar o ponteiro, recolhe-se quando o rato o deixa sem que o foco lá esteja, aberto com um clique permanece até um clique noutro sítio. o botão de pionés do cabeçalho dispara ue_panel_pinned para cada painel do grupo, e também definir ib_pinned pelo código (uma ordem dispara-o como o gesto) |
ib_closable | boolean | true | O utilizador pode fechar este painel (cruz do cabeçalho, cruz do painel deslizante, Fechar / Fechar os outros no menu)? Definida ao adicionar com of_add_panel(…, ab_closable), alterável a qualquer momento: a cruz e as entradas do menu acompanham de imediato. of_close_panel recusa (-5) um painel não fechável |
is_header_color | string | "" | Cor do cabeçalho deste painel. Vazio = o tema decide; HEADER_COLOR_ACCENT acompanha o acento do tema (e continua a acompanhá-lo após uma mudança de tema, o que um código fixo não faria); caso contrário um #rrggbb. A cor de texto legível é calculada |
is_border_color | string | "" | Cor do contorno deste painel, mesma gramática. Contorna a moldura e o cabeçalho, que têm cada um o seu: colorir apenas um deixa uma emenda visível. Acompanha o painel no seu painel deslizante |
is_tooltip | string | "" | Tooltip simples apresentado ao passar sobre o item |
is_super_tooltip_title | string | "" | Título do tooltip enriquecido do item (prevalece sobre is_tooltip) |
is_super_tooltip_text | string | "" | Texto do tooltip enriquecido do item (aceita marcação enriquecida) |
is_super_tooltip_image | string | "" | Imagem do tooltip enriquecido do item |
il_back_color | long | -1 | Fundo do separador DESTE painel numa pilha, e da sua patilha no bordo depois de desafixado (-1 = o do componente, que segue o tema). O cabeçalho de um painel sozinho usa is_header_color |
il_text_color | long | -1 | Cor do texto do separador e da patilha DESTE painel (-1 = a do componente) |
il_back_color_hover | long | -1 | Fundo do separador e da patilha DESTE painel ao passar (-1 = o do componente) |
il_text_color_hover | long | -1 | Cor do texto do separador e da patilha DESTE painel ao passar (-1 = a do componente) |
il_accent | long | -1 | Destaque DESTE painel (-1 = destaque do componente); o cabeçalho segue-o quando is_header_color vale HEADER_COLOR_ACCENT |
Métodos #
| Método | Função |
|---|---|
of_add_panel (string as_key, string as_position, string as_relative_to, integer ai_size, string as_title, dragobject ado_content) | Adiciona um painel fechável e aloja o controlo. as_relative_to = chave do painel contra o qual se acopla (vazio = a raiz); ai_size = tamanho inicial em píxeis (0 = automático). Devolve 0 depois de aplicado, -5 perante uma chave vazia, já usada ou contendo / ou uma barra vertical, um controlo já alojado, um as_relative_to desconhecido ou um empilhamento (POSITION_STACK) sobre o painel principal, ou uma posição desconhecida — nada é tocado, -6 em modo de demonstração quando o dock já tem os seus três painéis (o controlo fica no seu lugar, visível), -2 se o componente não estiver criado |
of_add_panel (…, boolean ab_closable) | Idem, com ab_closable = false para um painel sem botão de fecho. Devolve 0 depois de aplicado, -5 perante uma chave vazia, já usada ou contendo / ou uma barra vertical, um controlo já alojado, um as_relative_to desconhecido ou um empilhamento (POSITION_STACK) sobre o painel principal, ou uma posição desconhecida — nada é tocado, -6 em modo de demonstração quando o dock já tem os seus três painéis (o controlo fica no seu lugar, visível), -2 se o componente não estiver criado |
of_select_panel (string as_key) | Torna um painel visível: em primeiro plano na sua pilha, o seu painel deslizante aberto quando o grupo está recolhido, a sua janela trazida para a frente quando flutua. Quando um painel acoplado passa para primeiro plano na sua pilha, segue ue_panel_selected, como num clique no seu separador. Devolve 0 depois de aplicado, -5 perante uma chave desconhecida ou um painel OCULTO (mostrá-lo é o papel de ib_visible), -2 se o componente não estiver criado |
of_move_panel (string as_key, string as_target, string as_position) | Reorganiza a partir do código, exatamente como se o utilizador tivesse arrastado o separador. Devolve 0 depois de aplicado, -5 perante uma chave desconhecida, um destino (as_target) desconhecido uma posição desconhecida, um empilhamento sobre o painel principal ou um empilhamento DO painel principal, -2 se o componente não estiver criado |
of_move_panel (string as_key, string as_target, string as_position, integer ai_index) | O mesmo, indicando a posição do painel na pilha do destino (1 = primeiro, 0 o menos = último). Só uma pilha é uma lista ordenada: o índice é ignorado para POSITION_START / END / TOP / BOTTOM. Devolve 0 depois de aplicado, -5 perante uma chave desconhecida, um destino (as_target) desconhecido uma posição desconhecida, um empilhamento sobre o painel principal ou um empilhamento DO painel principal, -2 se o componente não estiver criado |
of_float_panel (string as_key) | Destaca o painel numa verdadeira janela flutuante deslocável e redimensionável; um painel já destacado antes recupera o lugar da sua janela. Ao fechá-la, o painel volta a acoplar-se (ue_panel_docked). Não o painel principal (is_main): é a zona de documento à volta da qual os outros se dispõem, constrói o seu próprio cabeçalho, e não pode ser nem destacado, nem ocultado, nem fechado. Segue ue_panel_floated, como para o botão do cabeçalho, o duplo clique no cabeçalho ou no separador, ou Destacar no menu do clique direito. Devolve 0 depois de aplicado, -5 perante uma chave desconhecida, o painel principal ou um painel OCULTO, -2 se o componente não estiver criado |
of_close_panel (string as_key) | Fecha o painel como a sua cruz: fica oculto (ib_visible = true volta a mostrá-lo) e segue ue_panel_closed. Com ib_veto_close = true, ue_panel_closing é colocado primeiro. Devolve 0 depois de aplicado, -4 quando o seu ue_panel_closing recusou (o painel fica), -5 perante uma chave desconhecida, o painel principal, um painel oculto ou não fechável (ib_closable = false), -2 se o componente não estiver criado |
of_notify_panel (string as_key) | Assinala conteúdo novo: se o painel não estiver visível, o respetivo separador apresenta um contador de elementos não vistos, apagado ao selecioná-lo. Devolve 0 depois de aplicado, -5 perante um argumento inválido (chave vazia, endereço errado), -2 se o componente não estiver criado |
of_clear_notify (string as_key) | Apaga esse contador sem mostrar o painel. Selecionar o separador era a única outra forma, o que é errado quando o seu código sabe que o próprio conteúdo desapareceu. Devolve 0 depois de aplicado, -5 perante um argumento inválido (chave vazia, endereço errado), -2 se o componente não estiver criado |
of_remove_panel (string as_key) | Retira o painel e devolve o controlo à window de origem, no seu lugar, com o seu tamanho e com a visibilidade que tinha antes de of_add_panel. Devolve 0 depois de aplicado, -5 perante um argumento inválido (chave vazia, endereço errado), -2 se o componente não estiver criado |
of_get_layout ( ) | Devolve a disposição atual (árvore das divisões, rácios, separadores, visibilidade, painéis flutuantes e lugar da sua janela) sob a forma de uma cadeia, para armazenar em ficheiro, base de dados ou registo |
of_set_layout (string as_json) | Repõe uma disposição obtida através de of_get_layout. Os painéis têm de ter sido recriados antes da chamada; os que estiverem ausentes da disposição — ou todos, se ela não conhecer nenhum — juntam-se a um grupo ao lado dos outros, nunca ao painel principal. Os painéis flutuantes recuperam a sua janela no seu lugar, trazida de volta para um ecrã se o deles desapareceu; uma disposição que não nomeia nenhum painel principal mantém o atual. Devolve 0 depois de aplicado, -5 perante um texto que não é uma disposição (não é JSON, ou sem tree): o dock fica então como está, -2 se o componente não estiver criado |
of_panel (string as_key) | Handle n_pbt_dock_panel do painel (criado no primeiro acesso) |
of_refresh_panel (string as_key) | Atualiza a representação de um painel construído fora do ecrã, sem cintilação. Devolve 0, -5 se a chave não designar nenhum painel, -2 se o componente não estiver criado |
of_relayout ( ) | Recalcula e volta a publicar todas as zonas para que os controlos alojados sejam reposicionados. Devolve 0 depois de aplicado, -2 se o componente não estiver criado |
of_reset ( ) | Esvazia o contentor: cada controlo alojado é devolvido à respetiva window de origem, os handles de painéis são libertados e a disposição memorizada é apagada. Devolve 0 depois de aplicado, -2 se o componente não estiver criado |
of_set_redraw (boolean) | Agrupa uma rajada de modificações numa única representação. Devolve 0 depois de aplicado, -2 se o componente não estiver criado |
of_save_as_png (string) · of_save_as_jpg (string) | Exporta a representação como imagem. Devolve 0 depois de a imagem ser escrita, -4 se a escrita falhar, -2 se o componente não estiver criado |
Eventos #
| Evento | Acionado quando |
|---|---|
ue_panel_selected (string as_key) | Um painel acoplado passa para primeiro plano no seu grupo: clique no separador ou no cabeçalho, setas da faixa de separadores, ou of_select_panel (uma ordem do seu código também o dispara) |
ue_panel_closed (string as_key) | Um painel é fechado: a cruz do seu cabeçalho, Fechar ou Fechar os outros no menu do clique direito sobre o cabeçalho ou o separador, a cruz de um painel deslizante, ou of_close_panel (uma ordem do seu código também o dispara). O painel fica oculto (ib_visible = true volta a mostrá-lo); com ib_veto_close = true, só depois de ue_panel_closing o ter permitido |
ue_panel_closing (string as_key) → boolean | Cancelável, colocado antes de um painel se fechar — a cruz do seu cabeçalho, Fechar ou Fechar os outros no menu (uma pergunta por painel), a cruz de um painel deslizante, ou of_close_panel —, e só quando ib_veto_close = true (desativado por omissão). Devolva false para manter o painel aberto (trabalho não guardado): ue_panel_closed não se segue, e of_close_panel devolve -4 |
ue_panel_pinned (string as_key, boolean ab_pinned) | Um painel é fixado (true) ou desafixado em ocultação automática (false): botão de pionés do cabeçalho, botão de acoplar do painel deslizante, ou ib_pinned definido pelo seu código (uma ordem também o dispara) |
ue_panel_floated (string as_key) | Um painel é destacado numa janela flutuante: botão do cabeçalho, duplo clique no cabeçalho ou no separador, Destacar no menu do clique direito, ou of_float_panel (uma ordem do seu código também o dispara). Uma disposição reposta (of_set_layout) não dispara nada |
ue_panel_docked (string as_key) | O UTILIZADOR volta a acoplar um painel flutuante: fecha a sua janela, ou faz duplo clique na sua barra de título — o painel regressa ao seu lugar |
ue_layout_changed (string as_json) | A disposição foi alterada (arrastamento, redimensionamento, acoplagem, uma janela flutuante deslocada ou redimensionada, mas também um painel fechado, ocultado, selecionado, renomeado, ou outro painel principal). O parâmetro transporta a nova disposição, pronta a ser gravada |
ue_ready ( ) | O componente terminou o carregamento; tudo o que foi enviado antes foi reproduzido |
ue_runtime_missing ( ) | O runtime WebView2 está ausente: o componente permanece vazio |
ue_bg_color (long al_color) | O componente calculou a cor de fundo do respetivo tema; o userobject já a adotou (backcolor) |
Com o rato #
Para além de arrastar separadores e divisores, três gestos atuam sobre um painel — nunca sobre o painel principal:
| Gesto | Efeito |
|---|---|
| Duplo clique no cabeçalho de um grupo ou num separador | Destaca o painel (para o cabeçalho: o painel ativo do grupo) numa janela flutuante — ue_panel_floated |
| Duplo clique na barra de título de uma janela flutuante | Volta a acoplar o painel no seu lugar, como a cruz da janela — ue_panel_docked |
| Clique direito no cabeçalho ou num separador | Menu Destacar / Fechar / Fechar os outros (os outros painéis fecháveis do mesmo grupo). Uma entrada que nada pode fazer fica a cinzento; com ib_veto_close = true, cada fecho coloca ue_panel_closing — uma pergunta por painel |
Com o teclado #
O conteúdo de um painel é um verdadeiro controlo PowerBuilder: aí o teclado pertence ao seu código, como em qualquer janela. Aquilo de que o componente trata é o seu próprio invólucro — cabeçalhos, separadores, divisores:
| Tecla | Efeito |
|---|---|
| Setas sobre um separador | Passam ao painel anterior / seguinte do grupo e selecionam-no. Uma banda de separadores é uma única paragem de tabulação |
| Home / End sobre um separador | Primeiro / último painel do grupo |
| Setas sobre um divisor | Deslocam a separação em 2 %, apenas no eixo do divisor |
| Page Up / Page Down sobre um divisor | O mesmo, em passos de 10 % |
| Esc | Fecha o painel deslizante aberto a partir de um botão de margem |
Um divisor é um separator focável que anuncia a sua posição; os botões do cabeçalho (destacar, ocultar, fechar) têm um nome, e o painel ativo de um grupo está marcado com aria-selected. Uma deslocação com o teclado é comunicada em ue_layout_changed exatamente como um arrastamento com o rato.
Exemplos #
Uma window ao estilo de um IDE #
// event open : cada conteudo e um controlo PB verdadeiro colocado sobre a window
uo_dock.of_add_panel(/*key*/ "document", /*position*/ "", /*relative_to*/ "", /*size*/ 0, /*title*/ "Document", /*content*/ uo_editor)
uo_dock.of_add_panel(/*key*/ "explorer", /*position*/ uo_dock.POSITION_START, /*relative_to*/ "document", /*size*/ 260, /*title*/ "Explorador", /*content*/ uo_tree)
uo_dock.of_add_panel(/*key*/ "properties", /*position*/ uo_dock.POSITION_END, /*relative_to*/ "document", /*size*/ 300, /*title*/ "Propriedades", /*content*/ uo_props)
uo_dock.of_add_panel(/*key*/ "output", /*position*/ uo_dock.POSITION_BOTTOM, /*relative_to*/ "document", /*size*/ 200, /*title*/ "Saida", /*content*/ uo_console)
// Um segundo painel empilhado em separador sobre "properties"
uo_dock.of_add_panel(/*key*/ "help", /*position*/ uo_dock.POSITION_STACK, /*relative_to*/ "properties", /*size*/ 0, /*title*/ "Ajuda", /*content*/ uo_help)
// O documento e a zona central
uo_dock.is_main = "document"
Memorizar e repor a disposição do utilizador #
// event close da window : gravar aquilo que o utilizador organizou
string ls_layout
ls_layout = uo_dock.of_get_layout()
of_save_setting(/*name*/ "main_dock", /*value*/ ls_layout)
// event open : RECRIAR primeiro os paineis, repor a disposicao depois
string ls_layout
// Primeiro os paineis : os of_add_panel acima
of_create_panels()
// Depois a disposicao guardada no ultimo fecho, se existir
ls_layout = of_read_setting(/*name*/ "main_dock")
if ls_layout <> "" then uo_dock.of_set_layout(/*json*/ ls_layout)
A ordem é imperativa:
of_set_layoutnão cria nenhum painel, limita-se a recolocar os que já existem.
Acompanhar as alterações continuamente #
// event ue_layout_changed de uo_dock : (string as_json)
// Gravacao imediata, sem esperar pelo fecho da window.
of_save_setting(/*name*/ "main_dock", /*value*/ as_json)
Comandar um painel através do respetivo handle #
// Local variables
n_pbt_dock_panel lnv_panel
// O painel das propriedades : um titulo que conta as alteracoes, recolhido no seu bordo
lnv_panel = uo_dock.of_panel(/*key*/ "properties")
lnv_panel.is_title = "Propriedades (3 modificadas)"
lnv_panel.ib_pinned = false // recolhe-se numa patilha junto ao bordo
// Ocultar um painel reservado aos administradores
uo_dock.of_panel(/*key*/ "audit").ib_visible = gb_administrator
Chamar a atenção para um painel em segundo plano #
// Um processamento em segundo plano escreveu na consola : assinalar sem roubar o foco
uo_dock.of_notify_panel(/*key*/ "output")
Reorganizar a partir do código #
// Deslocar um painel como se o utilizador tivesse arrastado o seu separador
uo_dock.of_move_panel(/*key*/ "output", /*target*/ "document", /*position*/ "bottom")
// Empilha-lo em separador sobre outro painel
uo_dock.of_move_panel(/*key*/ "help", /*target*/ "properties", /*position*/ "stack")
Destacar um painel para um segundo ecrã #
// Janela flutuante nativa : o utilizador pode coloca-la noutro ecra
uo_dock.of_float_panel(/*key*/ "properties")
// event ue_panel_docked de uo_dock : (string as_key)
// O utilizador voltou a fechar a janela flutuante : o painel regressou.
of_log(/*msg*/ "Painel novamente acoplado: " + as_key)
Fechar corretamente um painel #
// event ue_panel_closed de uo_dock : (string as_key)
// Retirar tambem o painel do contentor para libertar o controlo alojado.
uo_dock.of_remove_panel(/*key*/ as_key)
Recusar o fecho de um painel com trabalho não guardado #
// event open da window : perguntar antes de um painel se fechar (desativado por omissao)
uo_dock.ib_veto_close = true
// ue_panel_closing event of uo_dock : (string as_key) returns boolean
// O editor ainda tem alteracoes nao guardadas : o seu painel fica aberto.
if as_key = "editor" then
if ib_editor_modified then return false
end if
return true
// O seu codigo coloca a mesma pergunta : -4 quando e recusada
if uo_dock.of_close_panel(/*key*/ "editor") = -4 then
st_status.Text = "Guarde o documento antes de fechar o editor."
end if
Boas práticas #
- Designar sempre um painel principal com
is_main: sem zona central, o utilizador pode ocultar tudo e ficar perante uma window vazia. - Gravar a disposição em
ue_layout_changedem vez de o fazer apenas no fecho: assim, um encerramento anormal não perde nada. of_set_layoutvem depois dosof_add_panel, nunca antes.- Utilizar
of_notify_panelpara os processamentos em segundo plano: é menos intrusivo do que uma caixa de diálogo e a informação permanece visível. - Um controlo alojado é uma janela nativa: desenha-se por cima da camada web, e nenhum efeito visual do componente passa por cima dele.
of_reset()antes de qualquer reconstrução: sem ele, os controlos anteriormente alojados permanecem reparentados no contentor esvaziado e a reutilização de uma chave falha.- Para simples páginas exclusivas, sem acoplagem nem flutuação, tab é mais leve.
Herdado da base comum #
Estes membros existem em todos os componentes visuais — não são próprios deste. São detalhados uma só vez, nos capítulos transversais; esta tabela apenas diz onde os ler.
| Membros | Função | Detalhado em |
|---|---|---|
of_count · of_keys_at · of_has | Percorrer o que o componente contém | 3.2 Os items |
of_reset | Repor o componente a zero | 3.6 Repor um componente a zero: of_reset() |
of_register_shortcut · of_clear_shortcuts | Atalhos de teclado do componente | 3.5 Os atalhos de teclado |
of_is_created · of_is_ready · of_get_last_error | Se nasceu, se está pronto, o que falhou | 3.7 Diagnóstico |
of_save_as_png · of_save_as_jpg | Exportar a renderização como imagem | 3.8 Exportar a representação como imagem |
of_set_redraw | Agrupar as alterações num único repinte | 3.10 Boas práticas |
of_preload_icons | Ícones mostrados sem atraso | Apresentação instantânea: of_icon |
of_set_translation | Traduzir uma legenda do componente | 5.2 Adaptar uma etiqueta: of_set_translation |
of_focus_webview | Dar o foco ao componente | 6.4 Teclado e focus |
of_print · of_print_to_pdf | Imprimir, ou escrever um PDF | 6.9 Imprimir |
of_set_property · of_get_property · of_component_name | Controlar uma propriedade pelo nome | 3.1 O motor de propriedades |
Duas ajudas não são herdadas: of_icon e of_escape_markup vivem em n_pbt_utils. Declare um — n_pbt_utils lnv_utils, nada a criar — e chame-as nele.