Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Je reviens sur le sujet du post
http://pbadonf.fr/forum/viewtopic.php?pid=31576#p31576
qui donnait la manière d'ajouter une page d'onglet pour présenter les variables.
String is_toto descriptor "pb_format"="DataType=string~tGroup=PBaDonf~tDivider=Astuce 1~tLabel=Combien de pépites pour chrnico" = "1000 pépites"
Dans les exemples plus complet qui ont suivis je n'ai pas trouvé une liste déroulante personnalisée
Exemple :
Une variable peut prendre trois valeurs A, B ,C
Est'il possible de construire une liste déroulante avec ses propres valeurs A, B, C ?
Permettant ainsi aux descendants de choisir l'une d'entres elles.
Dernière modification par Dadone (04-06-2015 13:51:39)
Hors ligne
Cela semblait intéressant comme astuce mais dans les faits cela n'est pas opérationnel car il y a trop de dysfonctionnements que l'on ne maîtrise pas.
Par exemple la page d'onglet personnalisée peut ne pas apparaître et on a aucune idée de la raison et encore une initialisation des variables "aléatoires".
Dernière modification par Dadone (11-02-2015 11:41:21)
Hors ligne
En lisant le post de xlat on a le code suivant :
//EditMenu string is_PopupMenu descriptor "pb_format"="Group=Edits~tStyle=EditMenu~tLabel=Mask~tItems=Text1|Text2~tValues=Val1|Val2"
Il y a bien des valeurs personnalisées, donc je pense que cela doit être possible de faire de même mais en changeant le style avec un mot clé qui spécifie que l'on a une liste déroulante.
J'ai essayé plusieurs mots clé :
Style=DropDownListBox
Style=DropDown
Style=Ddlb
aucun n'a fonctionné.
Personne n'a une idée ?
Hors ligne
Pour les listes déroulantes personnalisées j'ai utilisé ça
Style=SingleChoice
integer ii_quel_prm descriptor "pb_format"="Group=Liaison paramètres~tLabel=Numéro de valeur~tStyle=SingleChoice~tItems=Valeur 1|Valeur 2~tValues=1|2" = 1
Dernière modification par _francois_ (22-04-2015 12:18:38)
Hors ligne
_francois_ a écrit:
Pour les listes déroulantes personnalisées j'ai utilisé ça
Style=SingleChoiceCode: pb
integer ii_quel_prm descriptor "pb_format"="Group=Liaison paramètres~tLabel=Numéro de valeur~tStyle=SingleChoice~tItems=Valeur 1|Valeur 2~tValues=1|2" = 1
Super le mot clé est bien "SingleChoice" et cela fonctionne !
Merci !
Mais j'ai une autre question :
Si j'ai plusieurs degrés d'héritage cela fonctionne pour le premier degré avec la méthodologie en edit source pour la déclaration des propriétés.
En revanche, pour le second degré d'héritage même en utilisant une classe intermédiaire destinée uniquement à la déclaration des variables (donc utilisée en edit source) j'ai une mauvaise initialisation des données dans les descendants uniquement pour ces variables (les autres déclarées dans le premier degré d'héritage continuent a être correctement initialisées).
Pour contourner ce dysfonctionnement, j'ai déclaré l'ensenble des variables dans le premier degré d'héritage, cela fonctionne mais pour la première classe d'héritage il y des propriétées qui ne la concerne pas.
Comment faire pour éviter que s'affiche des propriétés pour une classe qui ne la concerne pas tout en ayant des données correctement initialisées ?
Dernière modification par Dadone (22-04-2015 15:18:31)
Hors ligne
Ce n'est pas lié à cette remarque d'xlat (le point "juste après le global") ?
Hors ligne
seki a écrit:
Ce n'est pas lié à cette remarque d'xlat (le point "juste après le global") ?
J'ai respecté cette consigne.
Dans les faits les variables ne sont pas initialisées et donc possèdent la valeur nulle.
Hors ligne
Je n'ai pas rencontré de soucis pour ma part sur l'héritage sur plusieurs niveaux (PB 12.5)
D'abord ma classe de base pour les custom visual class
u_customvisual_base
Me sert aux déclarations de premier niveau
forward global type u_customvisual_base from userobject end type end forward global type u_customvisual_base from userobject public boolean ib_ancrage_haut descriptor "pb_format"="DataType=boolean~tGroup=Ancrage~tDivider=Ancrage~tLabel=En haut" = true public boolean ib_ancrage_bas descriptor "pb_format"="DataType=boolean~tGroup=Ancrage~tLabel=En bas" = false public boolean ib_ancrage_droite descriptor "pb_format"="DataType=boolean~tGroup=Ancrage~tLabel=A droite" = false public boolean ib_ancrage_gauche descriptor "pb_format"="DataType=boolean~tGroup=Ancrage~tLabel=A gauche" = true public boolean ib_redim_pct_hauteur descriptor "pb_format"="DataType=boolean~tGroup=Ancrage~tDivider=Redimensionner la taille du contrôle~tLabel=En pourcentage de la hauteur" = false public boolean ib_redim_pct_largeur descriptor "pb_format"="DataType=boolean~tGroup=Ancrage~tLabel=En pourcentage de la largeur" = false public boolean ib_pos_rel_hauteur descriptor "pb_format"="DataType=boolean~tGroup=Ancrage~tDivider=Postionnement relatif~tLabel=non utilisé" = false public boolean ib_pos_rel_largeur descriptor "pb_format"="DataType=boolean~tGroup=Ancrage~tLabel=non utilisé" = false integer width = 571 integer height = 600 long backcolor = 67108864 string text = "none" long tabtextcolor = 33554432 long picturemaskcolor = 536870912 end type global u_customvisual_base u_customvisual_base on u_customvisual_base.create end on on u_customvisual_base.destroy end on
Puis mon u_customvisual qui me sert pour la partir graphique
forward global type u_customvisual from u_customvisual_base end type end forward global type u_customvisual from u_customvisual_base end type global u_customvisual u_customvisual type variables private long il_dist_haut = 0 private long il_dist_bas = 0 private long il_dist_gauche = 0 private long il_dist_droite = 0 private dec{5} idc_pct_hauteur_objet = 0 private dec{5} idc_pct_largeur_objet = 0 private long il_taille_controle_origine private dec{5} idc_pos_rel_haut private dec{5} idc_pos_rel_bas private dec{5} idc_pos_rel_gauche private dec{5} idc_pos_rel_droite end variables forward prototypes public subroutine of_resize () public subroutine of_get_ancrage_controle (ref s_ancrage astr_ancrage) public subroutine of_get_dist_controle (ref s_distance_controle astr_dist) public function integer resize (integer w, integer h) public subroutine of_get_mesures (boolean ab_constructor) public function integer move (integer x, integer y) end prototypes
Puis une classe héritée de u_customvisual (pas de u_customvisual_base)
Elle me sert à la déclaration des variables pour le "second" niveau
forward global type u_barre_status_base from u_customvisual end type end forward global type u_barre_status_base from u_customvisual long il_couleur_texte_normal descriptor "pb_format" = "Divider=Couleur de base (N)ormal~tDataType=long~tGroup=Statut~tStyle=Color~tLabel=Texte" long il_couleur_fond_normal descriptor "pb_format" = "DataType=long~tGroup=Statut~tStyle=Color~tLabel=Fond" long il_couleur_texte_erreur descriptor "pb_format" = "Divider=Couleur message d'(E)rreur~tGroup=Statut~tDataType=long~tStyle=Color~tLabel=Texte" long il_couleur_fond_erreur descriptor "pb_format" = "DataType=long~tGroup=Statut~tStyle=Color~tLabel=Fond" long il_couleur_texte_succes descriptor "pb_format" = "Divider=Couleur message de (S)uccès~tDataType=long~tGroup=Statut~tStyle=Color~tLabel=Texte" long il_couleur_fond_succes descriptor "pb_format" = "DataType=long~tGroup=Statut~tStyle=Color~tLabel=Fond" string is_quelle_base descriptor "pb_format"="DataType=boolean~tGroup=Boutons~tLabel=Base Habilitations~tStyle=SingleChoice~tItems=GED|Métier~tValues=G|M" = "M" boolean ib_afficher_bouton_ok descriptor "pb_format" = "Divider=Bouton Valider~tDataType=boolean~tGroup=Boutons~tLabel=Afficher le bouton" string is_objet_bouton_ok descriptor "pb_format" = "DataType=string~tGroup=Boutons~tStyle=PBObject~tSystemType=Userobject~tLabel=Objet bouton" string is_reagit_clavier_ok descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Réagit à la touche~tStyle=SingleChoice~tItems=(Aucune)|Entrée|Echap~tValues=A|R|E" = "R" string is_event_ok descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Event déclenché" = "ue_click_ok" long il_id_action_ok descriptor "pb_format" = "DataType=long~tGroup=Boutons~tLabel=id_action pour contrôle habilitations (0 si pas d'action)" = 0 boolean ib_afficher_bouton_cancel descriptor "pb_format" = "Divider=Bouton Fermer~tDataType=boolean~tGroup=Boutons~tLabel=Afficher le bouton" string is_objet_bouton_cancel descriptor "pb_format" = "DataType=string~tGroup=Boutons~tStyle=PBObject~tSystemType=Userobject~tLabel=Objet bouton" boolean ib_fermer_auto descriptor "pb_format" = "DataType=boolean~tGroup=Boutons~tLabel=Fermeture automatique de la fenêtre" = true string is_reagit_clavier_cancel descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Réagit à la touche~tStyle=SingleChoice~tItems=(Aucune)|Entrée|Echap~tValues=A|R|E" = "E" string is_event_cancel descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Event déclenché" = "ue_click_annuler" long il_id_action_cancel descriptor "pb_format" = "DataType=long~tGroup=Boutons~tLabel=id_action pour contrôle habilitations (0 si pas d'action)" = 0 boolean ib_afficher_bouton_autre descriptor "pb_format" = "Divider=Troisième bouton~tDataType=boolean~tGroup=Boutons~tLabel=Afficher le bouton" string is_objet_bouton_autre descriptor "pb_format" = "DataType=string~tGroup=Boutons~tStyle=PBObject~tSystemType=Userobject~tLabel=Objet bouton" string is_reagit_clavier_autre descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Réagit à la touche~tStyle=SingleChoice~tItems=(Aucune)|Entrée|Echap~tValues=A|R|E" = "A" string is_event_autre descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Event déclenché" = "ue_click_autre" long il_id_action_autre descriptor "pb_format" = "DataType=long~tGroup=Boutons~tLabel=id_action pour contrôle habilitations (0 si pas d'action)" = 0 boolean ib_afficher_bouton_quatre descriptor "pb_format" = "Divider=Quatrième bouton~tDataType=boolean~tGroup=Boutons~tLabel=Afficher le bouton" string is_objet_bouton_quatre descriptor "pb_format" = "DataType=string~tGroup=Boutons~tStyle=PBObject~tSystemType=Userobject~tLabel=Objet bouton" string is_reagit_clavier_quatre descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Réagit à la touche~tStyle=SingleChoice~tItems=(Aucune)|Entrée|Echap~tValues=A|R|E" = "A" string is_event_quatre descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Event déclenché" = "ue_click_quatre" long il_id_action_quatre descriptor "pb_format" = "DataType=long~tGroup=Boutons~tLabel=id_action pour contrôle habilitations (0 si pas d'action)" = 0 boolean ib_afficher_bouton_cinq descriptor "pb_format" = "Divider=Cinquième bouton~tDataType=boolean~tGroup=Boutons~tLabel=Afficher le bouton" string is_objet_bouton_cinq descriptor "pb_format" = "DataType=string~tGroup=Boutons~tStyle=PBObject~tSystemType=Userobject~tLabel=Objet bouton" string is_reagit_clavier_cinq descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Réagit à la touche~tStyle=SingleChoice~tItems=(Aucune)|Entrée|Echap~tValues=A|R|E" = "A" string is_event_cinq descriptor "pb_format" = "DataType=string~tGroup=Boutons~tLabel=Event déclenché" = "ue_click_cinq" long il_id_action_cinq descriptor "pb_format" = "DataType=long~tGroup=Boutons~tLabel=id_action pour contrôle habilitations (0 si pas d'action)" = 0 boolean ib_afficher_redim descriptor "pb_format" = "Divider=Divers~tDataType=boolean~tGroup=Statut~tLabel=Autoriser le redimensionnement" = true string is_position_bouton descriptor "pb_format" = "DataType=string~tGroup=Statut~tLabel=Positionnement des boutons~tStyle=SingleChoice~tItems=Droite|Centré|Gauche~tValues=D|C|G" = "D" boolean ib_afficher_texte_stat descriptor "pb_format" = "DataType=boolean~tGroup=Statut~tLabel=Afficher le texte du statut" = true end type global u_barre_status_base u_barre_status_base on u_barre_status_base.create call super::create end on on u_barre_status_base.destroy call super::destroy end on
Et enfin ma dernière classe pour la partie graphique de mon "second niveau"
forward global type u_barre_status from u_barre_status_base end type type st_status from u_statictext within u_barre_status end type type p_resize from u_picture within u_barre_status end type end forward global type u_barre_status from u_barre_status_base integer width = 1833 integer height = 104 long backcolor = 27943989 boolean ib_ancrage_haut = false boolean ib_ancrage_bas = true boolean ib_ancrage_droite = true long il_couleur_texte_normal = 16777215 long il_couleur_fond_normal = 27943989 long il_couleur_texte_erreur = 16777215 long il_couleur_fond_erreur = 25198847 long il_couleur_texte_succes = 16777215 long il_couleur_fond_succes = 23565379 boolean ib_afficher_bouton_ok = true string is_objet_bouton_ok = "u_bouton_valider" boolean ib_afficher_bouton_cancel = true string is_objet_bouton_cancel = "u_bouton_fermer" event ue_click_annuler ( ) event ue_click_ok ( ) st_status st_status p_resize p_resize end type global u_barre_status u_barre_status type variables private: long il_off_x, il_off_y, il_width_avant_resize, il_height_avant_resize boolean ib_mouse_over_redim = false boolean ib_resize_fenetre = false long il_largeur_de_base, il_hauteur_de_base ulong iul_hdc_mdi, iul_hdc_parent, iul_handle_parent, iul_handle_mdi s_rect istr_rect_mdi, istr_rect_parent u_bouton_status_bar iuo_bouton_ok u_bouton_status_bar iuo_bouton_cancel u_bouton_status_bar iuo_bouton_autre u_bouton_status_bar iuo_bouton_quatre u_bouton_status_bar iuo_bouton_cinq boolean ib_fenetre_child = false end variables forward prototypes public subroutine of_set_msg (string as_texte, string as_statut) public function string classname () public subroutine of_active_bouton (string as_lequel, boolean ab_active) end prototypes
En espérant que ça puisse t'aiguiller et désolé pour le retard de réponse.
Hors ligne
Merci pour la réponse.
Je pensais avoir fait de même sans succes.
J'ai réessayé sur une nouvelle fois cela semble fonctionner.
Hors ligne
Pages: 1