FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Klaus Aujourd'hui à 19:48

» KGF_dll - nouvelles versions
par pascal10000 Aujourd'hui à 17:27

» Mah-Jong européen new-look
par Minibug Hier à 22:31

» track_bar circulaire
par Klaus Hier à 13:54

» API Windows
par Klaus Hier à 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Rubriques d'aide par la touche F1

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Rubriques d'aide par la touche F1   Jeu 10 Oct 2013 - 16:11

Voilà un certain temps déjà, Jean Claude (je crois) avait fait un petit programme qui permettait d'intercepter la touche F1 quand on a le focus sur un edit ou autre.
J'ai eu l'idée de vitaminer un peu ce programme, et ça donne ça.
Il faut noter cependant que sa réalisation doit beaucoup à cosmos 70.

Code:

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'
'        Aide contextuelle pour un écran de saisie
'
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

label Rubriques_aide,fin
dim fenetre_aide$(1000,1)         : ' N° de l'objet sujet à l'aide, et texte
                                    ' contenant 1 info sur le champs en rapport
dim path_dll$

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'            localisation de la dll de Klaus  SetWindowButton.dll
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
path_dll$ = "C:\_Données_\Panoramic's projects\_Dll\"
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'             Gui sur lequel doit porter l'aide
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
list 1            :on_key_up 1,Rubriques_aide : fenetre_aide$(1,1) = "saisie nom"
memo 2:left 2,200  :on_key_up 2,Rubriques_aide : fenetre_aide$(2,1) = "saisie prénom"
edit 3:top 3,200  :on_key_up 3,Rubriques_aide  : fenetre_aide$(3,1) = "saisie age"

button 4:top 4,250 :on_click 4,fin  :caption 4, "Faim"


' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'            Form et mémo contenant l'aide  (mémo présente l'incovénient
'            que l'on peut écrire de dans, et doc détruire ou poluer le
'            texte de l'aide. Demi mal car le fichier d'aide n'est pas
'            affecté par ces manoeuvre douteuses, et sera inchagé la prochaine
'            fois qu'on aura à l'utiliser
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
form 911 :hide 911 : top 911,100 : left 911,100 : width 911,400 : border_small 911
memo 912 : parent 912,911 : width 912,382 :height 912,200 :cursor_hide 912 : color 912,14,240,251
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
end

fin:
   terminate
return


' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'        Quand le focus est sur l'objet number_key_up et qu'on appuie sur F1
'        Ne pas oublier de désactiver la dll active s'il y en a une ou bien
'        passer par kgf.dll.
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rubriques_aide:
  if key_up_code =112
     aide(number_key_up)
  end_if
return

sub aide(rubrique%)
    dim_local fichier_aide$,res% ,dll$,hnd_dll%
    inactive 0                      : ' pour qu'un click sur la form qui est dessous
                                      ' ne fasse pas disparaitre la form de l'aide
    dll$ = path_dll$ + "SetWindowButton.dll"
    dll_on dll$
    res% = dll_call2("SetCloseBox",handle(911),0)
    fichier_aide$ = "aide"+str$(rubrique%)+".txt"
    caption 911,"Rubrique d'aide sur "+ fenetre_aide$(rubrique%,1)+" Sortie par Esc"
    show 911
    file_load 912, "aide"+str$(rubrique%)+".txt"
    while scancode <> 27  : end_while
    hide 911
    dll_off
    active 0
    set_focus rubrique%             : ' Nécessaire pour que la form d'origine
                                      ' soit au 1er plan ( Je ne vois pas trop pourquoi
                                      ' pour le moment...)
end_sub

Les fichiers texte sont sur mon webdav, mais vu leur contenu, je pense que vous n'aurez pas de mal à les créer en local Laughing

PS : Si l'auteur du programme originel n'est pas jean Claude qu'il trouve là mes plus plates excuses
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Froggy One

avatar

Nombre de messages : 395
Date d'inscription : 06/01/2012

MessageSujet: Re   Jeu 10 Oct 2013 - 18:05

Je ne voudrais pas jouer les rabat-joie mais Impossible to find the DLL et comment faire pour désactiver la dll active et je n'ai pas trouvé de fichier texte sur ton webdav et voila. Sinon je suis certain que ton programme est puissant, mais je ne le comprends pas encore, à ma grande honte... Sad 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gaeldwest.wordpress.com
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Rubriques d'aide par la touche F1   Jeu 10 Oct 2013 - 19:03

Salut Mumu,

Je ne me rappelle pas pour le programme d'interception touche F1, c'est sûrement quelqu'un d'autres.

Bref, j'ai voulu tester, mais il faut que charge la DLL.

Sinon modifie ta ligne du bouton "Faim", tu as sans doute voulu dire "Fin"

on croirait piloter un Tamagotchi.Very Happy 

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Rubriques d'aide par la touche F1   Jeu 10 Oct 2013 - 21:46

C'est le genre de plaisanteries que je m'autorise quand je programme ! Oups j'ai oublié de le virer avant de publier... désolé, j'ai puissamment honte Embarassed Embarassed Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Rubriques d'aide par la touche F1   Ven 11 Oct 2013 - 16:09

@ Froggy One

Excuse moi je n'avais pas vu ton post (et vvu l'heure avancée de la journée je ne peux pas prétendre avoir été mal réveillé... Re Embarassed )

Pour la dll, Y'A UN BUG CHEZ MOI... Je republie la version finale du programme


Code:

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'
'        Aide contextuelle pour un écran de saisie
'
' Le fichier d'aide doit avoir le format suivant

'                     aide.txt

'           Entête de l'aide
' normalement le programme dans lequel est incluse
' l'aide doit ignorer ces lignes. Sinon...
' Max 39 caractères par ligne ou modifier le form
' et le list qui contiendra l'aide (911 et 912)
' Commencer chaque rubrique par le N° d'objet
' auquel se rapporte l'aide (balise de début).
' Terminer chaque rubrique par le N° d'objet
' auquel se rapporte l'aide (balise de fin).
'
' 1
' Saisir le Nom
' Et puis une autre ligne
' 1 ça c'est pour tromper l'ennemi
' Et ça c'est la verification
' le 1 en début de ligne n'est pas
' interprété comme une balise de
' fin d'item d'aide.
' Encore un peu de verbiage pour
' forcer le texte d'aide à sortir
' du cadre. force est de constater
' que ça marche. on a bien le petit
' ascenseur
' 1
'
'
' 2
' Saisir le Prenom
' 2
'
'
' 3
' Saisir l'age
' 3
'
'               Fin du fichier
'
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

label Rubriques_aide,fin
dim fenetre_aide$(1000,1)         : ' N° de l'objet sujet à l'aide, et texte
                                    ' contenant 1 info sur le champs en rapport
dim path_dll$

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'            localisation de la dll de Klaus  SetWindowButton.dll
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
path_dll$ = "C:\_Données_\Panoramic's projects\_Dll\"
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'             Gui sur lequel doit porter l'aide
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
edit 1:on_key_up 1,Rubriques_aide : fenetre_aide$(1,1) = "saisie nom"
top 1,100 : left 1,100
edit 2:on_key_up 2,Rubriques_aide : fenetre_aide$(2,1) = "saisie prénom"
top 2,100 :left 2,300
edit 3:on_key_up 3,Rubriques_aide : fenetre_aide$(3,1) = "saisie age"
left 3,100 :top 3,300
button 4:on_click 4,fin  :caption 4, "Arrêt"
left 4, 100 :top 4,350

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'            Form et list contenant l'aide
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
form 911 :hide 911 : top 911,100 : left 911,100 : width 911,400 : border_small 911
list 912 : parent 912,911 : width 912,382 :height 912,200 :cursor_hide 912
color 912,51,153,255 : font_color 912,255,255,255 : font_size 912,14
font_name 912,"Times new roman"
dlist 913 :file_load 913,aide.txt
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
end

fin:
   terminate
return


' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'        Quand le focus est sur l'objet number_key_up et qu'on appuie sur F1.
'        Ne pas oublier de désactiver la dll active s'il y en a une ou bien
'        passer par kgf.dll.
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rubriques_aide:
  if key_up_code =112
     aide(number_key_up)
  end_if
return

sub aide(rubrique%)
    dim_local i%, dll$, erreur_aide%
    inactive 0                      : ' pour qu'un click sur la form qui est dessous
                                      ' ne fasse pas disparaitre la form de l'aide
    erreur_aide% = 0
    dll$ = path_dll$ + "SetWindowButtons.dll"
    dll_on dll$
    i% = dll_call2("SetCloseBox",handle(911),0)
    caption 911,"Rubrique d'aide sur "+ fenetre_aide$(rubrique%,1)+" Sortie par Esc"
    for i% = 1 to count(913)
       if item_read$(913,i%) =  str$(rubrique%) then exit_for
       if i% = count(913)
          message "Pas d'aide disponnible"
          exit_sub
       end_if
    next i%
    i% = i% + 1
    while item_read$(913,i%) <> str$(rubrique%)
       item_add 912 , item_read$(913,i%)
       i% = i% + 1
    end_while
    show 911
    
    
    
    while scancode <> 27  : end_while
    hide 911
    clear 912
    dll_off
    active 0
    set_focus rubrique%             : ' Nécessaire pour que la form d'origine
                                      ' soit au 1er plan ( Je ne vois pas trop pourquoi
                                      ' pour le moment...)
end_sub

Le fichier de texte est en commentaire au début du programme.

Le bug, c'est qu'il y a un "s" qui a sauté dans la manœuvre.

Ça marche-t-y ?

Edit: La dll c'est une  dll écrite par Klaus : SetWindowButtons.dll

ReEdit: pour désactiver une éventuelle dll active (Panoramic n'en accepte qu'une) dll_off
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10257
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Rubriques d'aide par la touche F1   Ven 11 Oct 2013 - 17:29

@mumu:
Cette DLL n'est plus maintenue !

Utilise stp KGF.dll !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Rubriques d'aide par la touche F1   Ven 11 Oct 2013 - 18:31

Ok c'est enregistré. La fonction de KGF porte le même nom ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Rubriques d'aide par la touche F1   Ven 11 Oct 2013 - 18:37

Ça va. Laisse tomber j'ai la réponse Laughing Laughing 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10257
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Rubriques d'aide par la touche F1   Ven 11 Oct 2013 - 18:38

Depuis la version
Citation :
1.26 09/08/2012 intégration de SetWindowButtons.dll
KGF.dll contient les fonctions:
Citation :
WindowTranparency
RepaintWindow
SetMinimizeMaximize
SetCloseBox
AttachWindowToWindow
Elles sont documentées dans la rubrique "Fonctions de gestion des fenêtres - Window managment functions" de KGF.chm (doc de KGF.dll).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Rubriques d'aide par la touche F1   Ven 11 Oct 2013 - 18:58

@ Klaus

Merci Very Happy . J'avais utilisé cette dll après avoir lu un de tes posts anciens où tu en parlais en termes élogieux... Bon après KGF.dll est passée par là mais la doc est si conséquente que ça m'a complètement échappé.

Voici donc la version post-finale de l'aide.

Code:

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'
'        Aide contextuelle pour un écran de saisie
'
' Le fichier d'aide doit avoir le format suivant

'                     aide.txt

'           Entête de l'aide
' normalement le programme dans lequel est incluse
' l'aide doit ignorer ces lignes. Sinon...
' Max 39 caractères par ligne ou modifier le form
' et le list qui contiendra l'aide (911 et 912)
' Commencer chaque rubrique par le N° d'objet
' auquel se rapporte l'aide (balise de début).
' Terminer chaque rubrique par le N° d'objet
' auquel se rapporte l'aide (balise de fin).
'
' 1
' Saisir le Nom
' Et puis une autre ligne
' 1 ça c'est pour tromper l'ennemi
' Et ça c'est la verification
' le 1 en début de ligne n'est pas
' interprété comme une balise de
' fin d'item d'aide.
' Encore un peu de verbiage pour
' forcer le texte d'aide à sortir
' du cadre. force est de constater
' que ça marche. on a bien le petit
' ascenseur
' 1
'
'
' 2
' Saisir le Prenom
' 2
'
'
' 3
' Saisir l'age
' 3
'
'               Fin du fichier
'
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

label Rubriques_aide,fin
dim fenetre_aide$(1000,1)         : ' N° de l'objet sujet à l'aide, et texte
                                    ' contenant 1 info sur le champs en rapport
dim path_dll$

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'            localisation de la dll de Klaus  SetWindowButton.dll
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
path_dll$ = "C:\_Données_\Panoramic's projects\_Dll\"
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'             Gui sur lequel doit porter l'aide
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
edit 1:on_key_up 1,Rubriques_aide : fenetre_aide$(1,1) = "saisie nom"
top 1,100 : left 1,100
edit 2:on_key_up 2,Rubriques_aide : fenetre_aide$(2,1) = "saisie prénom"
top 2,100 :left 2,300
edit 3:on_key_up 3,Rubriques_aide : fenetre_aide$(3,1) = "saisie age"
left 3,100 :top 3,300
button 4:on_click 4,fin  :caption 4, "Arrêt"
left 4, 100 :top 4,350

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'            Form et list contenant l'aide
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
form 911 :hide 911 : top 911,100 : left 911,100 : width 911,400 : border_small 911
list 912 : parent 912,911 : width 912,382 :height 912,200 :cursor_hide 912
color 912,51,153,255 : font_color 912,255,255,255 : font_size 912,14
font_name 912,"Times new roman"
dlist 913 :file_load 913,aide.txt
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
end

fin:
   terminate
return


' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'        Quand le focus est sur l'objet number_key_up et qu'on appuie sur F1.
'        Ne pas oublier de désactiver la dll active s'il y en a une ou bien
'        passer par kgf.dll.
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rubriques_aide:
  if key_up_code =112
     aide(number_key_up)
  end_if
return

sub aide(rubrique%)
    dim_local i%, dll$, erreur_aide%
    inactive 0                      : ' pour qu'un click sur la form qui est dessous
                                      ' ne fasse pas disparaitre la form de l'aide
    erreur_aide% = 0
    dll$ = path_dll$ + "kgf.dll"
    dll_on dll$
    i% = dll_call2("SetCloseBox",handle(911),0)
    caption 911,"Rubrique d'aide sur "+ fenetre_aide$(rubrique%,1)+" Sortie par Esc"
    for i% = 1 to count(913)
       if item_read$(913,i%) =  str$(rubrique%) then exit_for
       if i% = count(913)
          message "Pas d'aide disponnible"
          exit_sub
       end_if
    next i%
    i% = i% + 1
    while item_read$(913,i%) <> str$(rubrique%)
       item_add 912 , item_read$(913,i%)
       i% = i% + 1
    end_while
    show 911
    
    
    
    while scancode <> 27  : end_while
    hide 911
    clear 912
    dll_off
    active 0
    set_focus rubrique%             : ' Nécessaire pour que la form d'origine
                                      ' soit au 1er plan ( Je ne vois pas trop pourquoi
                                      ' pour le moment...)
end_sub


Post-finale si y' a pas de changement d'ici là !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10257
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Rubriques d'aide par la touche F1   Ven 11 Oct 2013 - 19:05

Bravo !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Rubriques d'aide par la touche F1   

Revenir en haut Aller en bas
 
Rubriques d'aide par la touche F1
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Aide TC Gold en français
» besion d'aide language html lecteur de musique !! (Résolu)
» [Résolu] Touche Suppr et OE
» [résolu]Message d'erreur ... Besoin d'aide !
» problème touche FN

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: