PBToolboxAI v1 ← Site

button — u_pbt_button #

← Référence des composants · Sommaire du guide

Bouton thémé : texte et icône, styles, badge de compteur, raccourci clavier, boutons par défaut et d'annulation.

Le voir en vrai — Application de démonstration, tuile Button : l'aperçu, le code qui le produit et cette page, côte à côte.


En bref #

Userobjectu_pbt_button
Classe d'items— (composant sans items)
Sert àRemplacer un commandbutton par un bouton moderne, thémé, avec icône et badge
Options opt-inib_track_mouse

Démarrage rapide #

// event open de la fenetre
uo_bouton.is_text  = "&Enregistrer"          // & = lettre soulignee (mnemonique)
uo_bouton.is_style = uo_bouton.STYLE_PRIMARY // bouton d'action principale
uo_bouton.is_image = "mono:img\save.svg"     // icone recoloree par le theme
uo_bouton.is_shortcut = "Ctrl+S"             // raccourci affiche et actif
uo_bouton.is_tooltip = "Enregistre le dossier en cours"
// event ue_clicked de uo_bouton
of_enregistrer()

Constantes #

ConstanteValeurPour
STYLE_STANDARD · STYLE_PRIMARY · STYLE_FLAT"standard" "primary" "flat"is_style

Propriétés #

PropriétéTypeDéfautRôle
is_textstring""Libellé. Accepte le balisage riche et le mnémonique & (&Enregistrer souligne le E) ; && affiche une esperluette littérale
is_imagestring""Icône affichée avant le libellé (formes acceptées : chemin, mono:, tint:, ressource de DLL)
ii_image_sizeinteger0Taille de l'icône en pixels (0 = taille naturelle du composant)
is_stylestring"standard"Apparence : STYLE_STANDARD, STYLE_PRIMARY (fond d'accent, action principale), STYLE_FLAT (sans bordure)
ib_enabledbooleantrueBouton actif ou grisé
ib_defaultbooleanfalseBouton par défaut : la touche Entrée le déclenche ; un liseré d'accent le signale
ib_cancelbooleanfalseBouton d'annulation : la touche Échap le déclenche
is_shortcutstring""Raccourci clavier ("Ctrl+S", "F5", "Ctrl+Shift+N"), affiché dans l'info-bulle et actif quand le bouton a le focus
ii_badgeinteger0Pastille de compteur en angle supérieur droit (0 = aucune)
il_badge_colorlong0Fond de la pastille, en RGB PowerBuilder (0 = la couleur qui vient du thème). La couleur du texte est choisie automatiquement pour que le compteur reste lisible
ii_badge_sizeinteger0Hauteur de la pastille en pixels (0 = la taille qui vient du thème). La taille de la police suit toute seule : le compteur reste centré quelle que soit la dimension
ib_track_mousebooleanfalseOpt-in : active ue_mouse_enter / ue_mouse_leave
is_theme_stylestringfluentStyle visuel du composant (constantes THEME_STYLE_*)
is_theme_modestringlightVariante claire ou sombre (constantes THEME_MODE_*)
il_theme_accentlong-1Couleur d'accent de ce composant (-1 = accent du thème)
is_tooltipstring""Info-bulle simple affichée au survol du composant
is_super_tooltip_titlestring""Titre de l'info-bulle enrichie (prend le pas sur is_tooltip)
is_super_tooltip_textstring""Texte de l'info-bulle enrichie (balisage riche accepté)
is_super_tooltip_imagestring""Image de l'info-bulle enrichie

Méthodes #

MéthodeRôle
of_reset ( )Remet toutes les propriétés à leur défaut
of_set_redraw (boolean)Regroupe une rafale de modifications en un seul rendu
of_save_as_png (string) · of_save_as_jpg (string)Exporte le rendu en image

Événements #

ÉvénementDéclenché quand
ue_clicked ( )Le bouton est cliqué, ou déclenché par Entrée / Échap / son raccourci
ue_rclicked ( )Clic droit sur le bouton
ue_mouse_enter ( )La souris entre — nécessite ib_track_mouse = true
ue_mouse_leave ( )La souris sort — nécessite ib_track_mouse = true
ue_ready ( )Le composant a fini de charger ; tout ce qui a été envoyé avant a été rejoué
ue_runtime_missing ( )Le runtime WebView2 est absent : le composant reste vide
ue_bg_color (long al_color)Le composant a calculé sa couleur de fond de thème ; l'userobject l'a déjà adoptée (backcolor)

Exemples #

Les trois styles #

uo_ok.is_text     = "Valider"
uo_ok.is_style    = uo_ok.STYLE_PRIMARY
uo_ok.ib_default  = true          // touche Entree

uo_annuler.is_text   = "Annuler"
uo_annuler.is_style  = uo_annuler.STYLE_STANDARD
uo_annuler.ib_cancel = true       // touche Echap

uo_aide.is_text  = "Aide"
uo_aide.is_style = uo_aide.STYLE_FLAT   // discret, sans bordure

Icône et badge de notification #

uo_messages.is_text  = "Messages"
uo_messages.is_image = "mono:img\mail.svg"
uo_messages.ii_image_size = 20
uo_messages.ii_badge = 12             // pastille "12"
// Mettre le compteur a jour : la pastille disparait a 0
uo_messages.ii_badge = ll_non_lus
// Une pastille rouge pour une alerte, plutot que la couleur du theme.
// La couleur du texte est choisie toute seule pour rester lisible.
uo_messages.il_badge_color = RGB(200, 30, 30)

// Revenir a la couleur qui vient du theme
uo_messages.il_badge_color = 0

Libellé enrichi #

uo_bouton.is_text = "[b]Exporter[/b] [size-=20]· CSV[/size-=20]"
uo_bouton.is_text = "Statut [picture=mono:img\ok.svg,14,14]"

Bouton d'action principale avec raccourci et aide #

uo_valider.of_set_redraw(false)

uo_valider.is_text     = "&Valider la commande"
uo_valider.is_style    = uo_valider.STYLE_PRIMARY
uo_valider.is_shortcut = "Ctrl+Entrée"
uo_valider.ib_default  = true
uo_valider.is_super_tooltip_title = "Valider"
uo_valider.is_super_tooltip_text  = "Envoie la commande au fournisseur." &
                                    + "[br][br][size-=15]Action irréversible.[/size-=15]"

uo_valider.of_set_redraw(true)

Réagir au survol #

uo_bouton.ib_track_mouse = true
// event ue_mouse_enter de uo_bouton
uo_statut.of_item("main").is_text = "Enregistre le dossier en cours"

Bonnes pratiques #


← Référence des composants · Sommaire du guide