PBToolboxAI v4 ← Site

buttonbar — u_pbt_buttonbar #

← Referencia de componentes · Índice de la guía

buttonbar alinea una fila de botones de comando — icono, etiqueta o ambos — en un solo componente. Un clic informa el id del botón (ue_clicked); cada botón se controla con un handle (of_button) para deshabilitarlo, colorearlo u ocultarlo. El componente a preferir en cuanto hay varios botones: un WebView2 para toda la barra, donde N button separados costarían N.

▶ Verlo en vivo — Aplicación de demostración, mosaico Button bar, con el código y esta página lado a lado.


Inicio rápido #

// A command bar in three lines
uo_bar.of_add_button(/*key*/ "save", /*image_file*/ "mono:img\packimages.dll:svg/samples/save", /*text*/ "Save")
uo_bar.of_add_button(/*key*/ "find", /*image_file*/ "mono:img\packimages.dll:svg/samples/find", /*text*/ "Find")
uo_bar.of_add_button(/*key*/ "copy", /*image_file*/ "", /*text*/ "Copy")   // no icon

// Grey out a button
uo_bar.of_button(/*key*/ "copy").ib_enabled = false

// React : ue_clicked carries the button key
// (in the ue_clicked event of the component)
CHOOSE CASE as_key
	CASE "save" ; wf_save()
	CASE "find" ; wf_find()
END CHOOSE

Propiedades #

PropiedadTipoPredeterminadoDescripción
ii_padding_xinteger12Sangría izquierda/derecha de la barra, en píxeles: el espacio antes del primer botón y después del último. 0 pega los botones a los bordes; -1 = la del tema
ii_padding_yinteger12Sangría superior/inferior de la barra, en píxeles. Un botón LLENA la altura de la barra: esta sangría decide la altura de los botones (barra más alta o sangría menor = botones más altos). 12 por defecto; -1 = la del tema
ii_gapinteger-1Espacio ENTRE dos botones, en píxeles. -1 (por defecto) = el del tema. 0 junta los botones, separados por una línea cuando el tema la tiene
is_alignstringendAlinea la fila: start (izquierda), center, end (derecha, predeterminado, como un cuadro de diálogo) o justify (botones de igual ancho en todo el ancho). Valores lógicos (RTL) — constantes ALIGN_*
is_defaultstring""Clave del botón predeterminado — la acción principal, pintada con el acento, que Intro activa (como el Aceptar de un cuadro de diálogo). Cuando un botón de la barra tiene el foco del teclado, Intro activa ESE botón, que lleva entonces el aspecto predeterminado (la convención de Windows); is_default releído sigue siendo la clave puesta. Un predeterminado deshabilitado u oculto no toma Intro: la tecla se queda en la ventana. Cuando dos barras de una misma ventana tienen un botón predeterminado (dos hojas MDI, dos paneles), Intro va a la del lado del foco. El rol se va con su botón: quitarlo, o vaciar la barra, vacía is_default. Vacío = ninguno; solo un botón predeterminado a la vez
is_cancelstring""Clave del botón cancelar — el que Esc activa (como el Cancelar de un cuadro de diálogo). Deshabilitado u oculto, no toma Esc. El rol se va con su botón: quitarlo, o vaciar la barra, vacía is_cancel. Vacío = ninguno; solo un botón cancelar a la vez
is_theme_stylestring""Estilo visual del componente (constantes THEME_STYLE_*); vacío = el de la aplicación, seguido en cada cambio
is_theme_modestring""Variante clara u oscura (constantes THEME_MODE_*); vacío = la de la aplicación, seguida en cada cambio
il_theme_accentlong-1Color de acento de este componente (-1 = acento de la aplicación, o el del tema)
is_tooltipstring""Tooltip simple mostrado al pasar el ratón por el componente
is_super_tooltip_titlestring""Título del tooltip enriquecido (prevalece sobre is_tooltip)
is_super_tooltip_textstring""Texto del tooltip enriquecido (se acepta el marcado enriquecido)
is_super_tooltip_imagestring""Imagen del tooltip enriquecido

Métodos #

MétodoFunción
of_add_button (string as_key, string as_image_file, string as_text) → longAgrega un botón de comando (id, archivo de imagen, etiqueta) al final de la barra. mono: en la imagen la recolorea al tema; una etiqueta vacía hace un botón solo icono. Devuelve 0, -5 con clave vacía, una clave que contiene / o una barra vertical, una clave ya presente en la barra o sin imagen ni texto
of_insert_button (string as_key, integer ai_index, string as_image_file, string as_text) → longInserta un botón de comando en la posición ai_index (a partir de 1), desplazando el resto. Devuelve 0, -5 con clave vacía, una clave que contiene / o una barra vertical, una clave ya presente en la barra o sin imagen ni texto
of_remove_button (string as_key) → longQuita un botón por su clave; los demás conservan su estado vivo. Su letra Alt, los atajos que la aplicación le dio, su rol predeterminado / cancelar, sus colores y su tooltip se van con él. Devuelve 0, -5 con clave vacía o una clave que no nombra ningún botón
of_move_button (string as_key, integer ai_index) → longMueve un botón a la posición ai_index (a partir de 1) sin perder su estado vivo. Devuelve 0, -5 con clave vacía o una clave que no nombra ningún botón
of_clear_buttons ( ) → longQuita todos los botones de la barra, con sus letras Alt, los atajos que la aplicación les dio, los roles predeterminado / cancelar, colores y tooltips. Devuelve 0, -2 si no está creado
of_focus_button (string as_key) → longPone el foco del teclado en UN botón — No en lugar de Sí ante una pregunta destructiva, para que Intro responda No. Devuelve 0, -5 con clave vacía o que no nombra ningún botón, -4 si el botón no puede tomarlo (deshabilitado, oculto o no dibujado en modo demo), -2 si no está creado
of_register_shortcut (string as_chord, string as_key) → longDa a UN botón un atajo de teclado (Ctrl+S, F5…): pulsado en cualquier lugar de la ventana, activa el botón (ue_clicked), incluso con el foco en otro sitio. Es independiente de la letra Alt del botón: deshabilitarlo, cambiar su letra o volver a habilitarlo nunca lo toca. Una combinación vacía lo quita. En una barra un atajo siempre nombra un botón: la forma de un argumento, o una clave que no nombra ningún botón, devuelve -5. Devuelve 0, -2 si no está creado
of_button (string as_key) → n_pbt_buttonbar_buttonDevuelve el handle de un botón (por id) para leer o cambiar sus propiedades (ver abajo)

Eventos #

EventoCuándo
ue_clicked (string as_key)Se ha usado un botón: un clic, Intro (el botón predeterminado, o el que tiene el foco), Esc (el botón cancelar), su letra Alt o un atajo registrado en él. Se pasa su clave: una aplicación que conecta Cancelar debe esperarlo también desde Esc. Un botón deshabilitado no emite nada

Propiedades de un botón (of_button) #

PropiedadTipoPredeterminadoDescripción
ib_enabledbooleantrueActiva o deshabilita un botón; deshabilitado, no se puede clicar y ni Intro, ni Esc, ni su atajo lo activan
ib_visiblebooleantrueMuestra u oculta un botón; oculto, conserva su lugar y vuelve donde estaba
is_textstring""Etiqueta del botón; se cambia tras agregarlo. Un botón conserva una etiqueta o un icono: vaciar la etiqueta de un botón sin icono se rechaza, y la etiqueta se relee sin cambios
is_imagestring""Icono del botón (archivo de imagen; mono: sigue el tema); se cambia tras agregarlo. Vaciar el icono de un botón sin etiqueta se rechaza. Un botón de solo icono se anuncia al lector de pantalla por su tooltip (is_tooltip), si no por su clave
il_badgelong0Pequeña insignia de recuento en la esquina del botón (0 = ninguna)
is_shortcutstring""Mnemónico de este botón: Alt+la letra lo activa, desde cualquier lugar de la ventana, y la letra se subraya en su etiqueta. Una letra (se usa la primera); vacío = ninguna. Un atajo registrado explícitamente para la misma tecla (of_register_shortcut) pasa delante de la letra; un menú PB que usa la misma letra la pierde mientras el botón pueda activarse. Mientras el botón está deshabilitado, oculto o no dibujado en modo demo, su letra se deja a la ventana
il_back_colorlong-1Fondo de ESTE botón (-1 = el del componente, que sigue el tema)
il_text_colorlong-1Color del texto de ESTE botón (-1 = el del componente)
il_back_color_hoverlong-1Fondo de ESTE botón al pasar (-1 = el del componente)
il_text_color_hoverlong-1Color del texto de ESTE botón al pasar (-1 = el del componente)
il_accentlong-1Acento de ESTE botón (-1 = acento del componente)

Heredado de la base común #

Estos miembros existen en todos los componentes visuales — no son propios de este. Se detallan una sola vez, en los capítulos transversales; esta tabla solo dice dónde leerlos.

MiembrosFunciónDetallado en
of_count · of_keys_at · of_hasRecorrer lo que el componente contiene3.2 Los items
of_resetPoner el componente a cero3.6 Poner un componente a cero: of_reset()
of_register_shortcut · of_clear_shortcutsAtajos de teclado del componente3.5 Los atajos de teclado
of_is_created · of_is_ready · of_get_last_errorSi ha nacido, si está listo, qué ha fallado3.7 Diagnóstico
of_save_as_png · of_save_as_jpgExportar el render como imagen3.8 Exportar la representación como imagen
of_set_redrawAgrupar los cambios en un solo repintado3.10 Buenas prácticas
of_preload_iconsIconos mostrados sin retardoVisualización instantánea: of_icon
of_set_translationTraducir una etiqueta del componente5.2 Adaptar una etiqueta: of_set_translation
of_focus_webviewDar el foco al componente6.4 Teclado y foco
of_print · of_print_to_pdfImprimir, o escribir un PDF6.9 Imprimir
of_set_property · of_get_property · of_component_nameControlar una propiedad por su nombre3.1 El motor de propiedades

← Referencia de componentes · Índice de la guía