Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Clone de la fonction MESSAGE_INPUT() de Panoramic Dim 12 Juin 2022 - 0:11 | |
| Bonjour à tous ! Ce clone, sous forme de fonction, possède à peu près les mêmes caractéristiques que la véritable fonction MESSAGE_INPUT() de Panoramic. Pour le clone de la fonction MESSAGE_INPUT$(), suivre ce lien : https://panoramic.1fr1.net/t6768-clone-de-la-fonction-message_input-de-panoramic#81155Extrait de la documentation Panoramic : L’intérêt de ce clone est la taille de sa fenêtre qui s’adapte automatiquement au contenu de l’ALPHA de caption T2.
Exemple : - Code:
-
' Clone de la fonction INPUT_MESSAGE(t1,t2,t3) de PANORAMIC ' Les dimensions de la fenêtre s'adaptent automatiquement au texte t2 ' Marc - Juin 2022 ' Ecrit en langage PANORAMIC 0.9.29.i9
' SYNTAXE : Resultat = messageInput(T1,T2,T3) ' T1 = texte (chaîne de caractères) à visualiser comme caption de la fenêtre de message. ' T2 = texte (chaîne de caractères) à visualiser comme caption de l'ALPHA. ' T3 = texte (chaîne de caractères) à visualiser comme texte de l'EDIT. ' ' Resultat = 0 quand l'utilisateur ferme la fenêtre en cliquant sur le bouton "CANCEL" ' ou l'icone de fermeture (croix rouge). Dans ce cas, la variable messageTexte$ vaut T3.
' Resultat = 1 quand l'utilisateur ferme la fenêtre en cliquant sur le bouton OK. ' Dans ce cas, le texte de l'EDIT est dans la variable messageTexte$. ' ' la variable messageTexte$ est une variable globale. Vous pouvez lui affecter un autre nom. ' ------------------------------------------------------------------------------ fnc MessageInput(tx1$,tx2$,tx3$) dim_local largeur%, hauteur%
' neutralisation des autres FORMs (à ajuster) inactive 0
if object_exists(900) = 0 form 900 border_small 900 create_show command_target_is 900
alpha 901 top 901,13 left 901,10
edit 902 height 902,21 left 902,10
button 903 height 903,23 width 903,63 caption 903,"OK"
button 904 height 904,23 width 904,63 caption 904,"Annuler" end_if
show 900 caption 900,tx1$ caption 901,tx2$ text 902,tx3$
' largeur automatique de la fenetre en fonction de la longueur du texte de l'ALPHA largeur% = width(901) + 35 if largeur% < 227 then largeur% = 227 width 900,largeur%
' hauteur automatique de la fenêtre en fonction de la hauteur du texte de l'ALPHA hauteur% = height(901) + 130 if hauteur% < 130 then hauteur% = 130 height 900,hauteur%
' placement en hauteur de l'EDIT en fonction de l'ALPHA top 902,top(901) + height(901) + 4
' largeur de l'EDIT width 902,width_client(900)-20
' placement en hauteur des BUTTONs top 903,top(902) + 36 top 904,top(902) + 36
' centrage des BUTTONs left 903,(width_client(900) - 130)/2 left 904,left(903) + 67
' centrage fenetre sur écran top 900,(screen_y - height(900))/2 left 900,(screen_x - width(900))/2 repeat ' appui sur le bouton OK if clicked(903)=1 messageTexte$=text$(902) result 1 exit_repeat end_if ' appui sur le bouton Annuler if clicked(904)=1 messageTexte$=tx3$ result 0 exit_repeat end_if ' appui fermeture fenêtre (Croix) if hide(900) = 1 messageTexte$=tx3$ result 0 exit_repeat end_if ' pause pour ne pas affoler le processeur pause 20 until 1 <> 1
hide 900 ' réactivation des FORMs (à ajuster) active 0 end_fnc ' ------------------------------------------------------------------------------
Voici un exemple d'implémentation dans un programme de l’appel de la fonction messageInput(). Un bouton permet l’appel de la fonction. Pour ce test, le résultat est sous forme de deux lignes dans la FORM 0. - Première ligne = résultat de la fonction : 0 ou 1 - Deuxième ligne = contenu de la variable globale messageTexte$ - Code:
-
' Clone de la fonction INPUT_MESSAGE(t1,t2,t3) de PANORAMIC ' Les dimensions de la fenêtre s'adaptent automatiquement au texte t2 ' Marc - Juin 2022 ' Ecrit en langage PANORAMIC 0.9.29.i9
' SYNTAXE : Resultat = messageInput(T1,T2,T3) ' T1 = texte (chaîne de caractères) à visualiser comme caption de la fenêtre de message. ' T2 = texte (chaîne de caractères) à visualiser comme caption de l'ALPHA. ' T3 = texte (chaîne de caractères) à visualiser comme texte de l'EDIT. ' ' Resultat = 0 quand l'utilisateur ferme la fenêtre en cliquant sur le bouton "CANCEL" ' ou l'icone de fermeture (croix rouge). Dans ce cas, la variable messageTexte$ vaut T3.
' Resultat = 1 quand l'utilisateur ferme la fenêtre en cliquant sur le bouton OK. ' Dans ce cas, le texte de l'EDIT est dans la variable messageTexte$. ' ' la variable messageTexte$ est une variable globale. Vous pouvez lui affecter un autre nom. ' ------------------------------------------------------------------------------
dim t1$,t2$,t3$,messageTexte$,dossier$,resultat% label appelMessageInput
button 1 top 1,150 left 1,200 caption 1,"Appel INPUT" on_click 1,appelMessageInput
dossier$ = "C:\Users\Yoda\Desktop\Dev\Panoramic\messageInput$\Test de longueur"
t1$="Nom du fichier"
t2$="Indiquez le nom du nouveau fichier."+chr$(13)+chr$(13) t2$=t2$+"Il sera installé dans le dossier :"+chr$(13)+chr$(13) t2$=t2$+dossier$+chr$(13)
t3$="Suggestion de texte"
end ' ------------------------------------------------------------------------------ fnc MessageInput(tx1$,tx2$,tx3$) dim_local largeur%, hauteur%
' neutralisation des autres FORMs (à ajuster) inactive 0
if object_exists(900) = 0 form 900 border_small 900 create_show command_target_is 900
alpha 901 top 901,13 left 901,10
edit 902 height 902,21 left 902,10
button 903 height 903,23 width 903,63 caption 903,"OK"
button 904 height 904,23 width 904,63 caption 904,"Annuler" end_if
show 900 caption 900,tx1$ caption 901,tx2$ text 902,tx3$
' largeur automatique de la fenetre en fonction de la longueur du texte de l'ALPHA largeur% = width(901) + 35 if largeur% < 227 then largeur% = 227 width 900,largeur%
' hauteur automatique de la fenêtre en fonction de la hauteur du texte de l'ALPHA hauteur% = height(901) + 130 if hauteur% < 130 then hauteur% = 130 height 900,hauteur%
' placement en hauteur de l'EDIT en fonction de l'ALPHA top 902,top(901) + height(901) + 4
' largeur de l'EDIT width 902,width_client(900)-20
' placement en hauteur des BUTTONs top 903,top(902) + 36 top 904,top(902) + 36
' centrage des BUTTONs left 903,(width_client(900) - 130)/2 left 904,left(903) + 67
' centrage fenetre sur écran top 900,(screen_y - height(900))/2 left 900,(screen_x - width(900))/2 repeat ' appui sur le bouton OK if clicked(903)=1 messageTexte$=text$(902) result 1 exit_repeat end_if ' appui sur le bouton Annuler if clicked(904)=1 messageTexte$=tx3$ result 0 exit_repeat end_if ' appui fermeture fenêtre (Croix) if hide(900) = 1 messageTexte$=tx3$ result 0 exit_repeat end_if ' pause pour ne pas affoler le processeur pause 20 until 1 <> 1
hide 900 ' réactivation des FORMs (à ajuster) active 0 end_fnc ' ------------------------------------------------------------------------------ appelMessageInput: resultat% = MessageInput(t1$,t2$,t3$) print str$(resultat%) print messageTexte$ return
Dernière édition par Marc le Ven 15 Juil 2022 - 12:39, édité 3 fois | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Clone de la fonction MESSAGE_INPUT() de Panoramic Mar 14 Juin 2022 - 15:13 | |
| Ah oui, c'est un plus ! Car sinon, avec la fonction classique, cela donne : Ce qui est un peu rogné. Un truc à mettre de côté ! Bravo Marc ! | |
|