Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| KGF_dll - nouvelles versions | |
|
+12JL35 Oscaribout bignono Pedro pascal10000 silverman Jicehel papydall Minibug Marc Yannick Klaus 16 participants | |
Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 15 Fév 2017 - 2:41 | |
| Ben, si j'active la ligne 51: "sort 2", tout va bien, non ? En fait, ça marche comme ça: - Code:
-
dim res%,TO%,txt$,o%(2)
dll_on "KGF.dll"
height 0,500 width 0,700
TO% = dll_call1("CreateTabObject",handle(0)) res% = dll_call5("TabObjectGeometry",TO%,10,10,width_client(0)-20,height_client(0)-20) txt$ = "Feuil(1)" o%(1) = dll_call2("AddTabObjectTab",TO%,adr(txt$)) res% = dll_call6("TabObjectFunction",TO%,5,o%(1),2,0,0) txt$ = "Feuil(2)" o%(2) = dll_call2("AddTabObjectTab",TO%,adr(txt$)) res% = dll_call6("TabObjectFunction",TO%,5,o%(2),2,0,0)
' ------------------------------------------------------------------------------ ' cas 1 sort_on avant ratachement, le list reste à sa place ' ------------------------------------------------------------------------------ List 1 height 1,height_client(0)-50 width 1,int((width_client(0)-35)/2) top 1,5 left 1,5 font_name 1,"Courier New" font_bold 1 sort_on 1 res% = dll_call3("AddObjectToTabObjectTab",TO%,o%(1),handle(1)) ' res% = dll_call3("AddSimpleObjectToTabObjectTab",TO%,o%(1),object_internal(1))
item_add 1,"item 1" item_add 1,"item 3" item_add 1,"item 2"
' ------------------------------------------------------------------------------ ' cas 2 sort N après ratachement (activer la ligne 48 pour voir le pb) ' ------------------------------------------------------------------------------
List 2 height 2,height_client(0)-50 width 2,int((width_client(0)-35)/2) top 2,5 left 2,left(1)+width(1)+5 font_name 2,"Courier New" font_bold 2 res% = dll_call3("AddObjectToTabObjectTab",TO%,o%(1),handle(2)) ' res% = dll_call3("AddSimpleObjectToTabObjectTab",TO%,o%(1),object_internal(2)) item_add 2,"item 1" item_add 2,"item 3" item_add 2,"item 2" sort 2 end La fonction AddSimpleObjectToTabObjectTab est prévue pour des objets qui n'ont pas de handle; comme ALPHA ou PICTURE. Pas pour un LIST...
Dernière édition par Klaus le Mer 15 Fév 2017 - 2:46, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 15 Fév 2017 - 2:45 | |
| Chez moi la position en top est perdu voir déconnecté de l' onglet. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 15 Fév 2017 - 2:46 | |
| On s'est croisé.J'ai édité mon message ci-dessus. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 15 Fév 2017 - 2:56 | |
| Avec Handle(N) sans Sort N :Avec Handle(N) avec Sort N :
et en cliquant sur l' onglet 2 on voit bien qu' il n' est plus attaché. l' onglet 2 est vide et le list reste visible au premier plan. Pour moi c' est , je suis cuit. Ne te prends pas trop la tête, il suffit de le savoir et d' appliquer Sort_on N avant l' attachement à l' onglet. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 15 Fév 2017 - 3:09 | |
| Je vois. Mais ça, c'est un problème de Panoramic ! En effetl la commande SORT modifie le handle de l'objet !La preuve: - Code:
-
dim res%,TO%,txt$,o%(2)
dll_on "KGF.dll"
height 0,500 width 0,700
TO% = dll_call1("CreateTabObject",handle(0)) res% = dll_call5("TabObjectGeometry",TO%,10,10,width_client(0)-20,height_client(0)-20) txt$ = "Feuil(1)" o%(1) = dll_call2("AddTabObjectTab",TO%,adr(txt$)) res% = dll_call6("TabObjectFunction",TO%,5,o%(1),2,0,0) txt$ = "Feuil(2)" o%(2) = dll_call2("AddTabObjectTab",TO%,adr(txt$)) res% = dll_call6("TabObjectFunction",TO%,5,o%(2),2,0,0)
' ------------------------------------------------------------------------------ ' cas 1 sort_on avant ratachement, le list reste à sa place ' ------------------------------------------------------------------------------ List 1 height 1,height_client(0)-50 width 1,int((width_client(0)-35)/2) top 1,5 left 1,5 font_name 1,"Courier New" font_bold 1 sort_on 1 res% = dll_call3("AddObjectToTabObjectTab",TO%,o%(1),handle(1)) ' res% = dll_call3("AddSimpleObjectToTabObjectTab",TO%,o%(1),object_internal(1))
item_add 1,"item 1" item_add 1,"item 3" item_add 1,"item 2"
' ------------------------------------------------------------------------------ ' cas 2 sort N après ratachement (activer la ligne 48 pour voir le pb) ' ------------------------------------------------------------------------------
List 2 height 2,height_client(0)-50 width 2,int((width_client(0)-35)/2) top 2,5 left 2,left(1)+width(1)+5 font_name 2,"Courier New" font_bold 2 res% = dll_call3("AddObjectToTabObjectTab",TO%,o%(1),handle(2)) ' res% = dll_call3("AddSimpleObjectToTabObjectTab",TO%,o%(1),object_internal(2)) item_add 2,"item 1" item_add 2,"item 3" item_add 2,"item 2" dim h1%, h2% h1% = handle(2) sort 2 h2% = handle(2) message "Handle avant sort: "+str$(h1%)+" handle après sort: "+str$(h2%) end Désolé, si le handle change, je ne peux rien faire ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 15 Fév 2017 - 10:25 | |
| Rien de grave Klaus, le tout est de le savoir. Il serait donc bon, à mon sens, de le signaler dans la doc. Si on veut qu' un list lié à un objet Tab soit trié, il faut utiliser Sort_on N à la déclaration de l' objet List avant de le lier. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 15 Fév 2017 - 10:39 | |
| Fort juste. Ce sera inclus dans la prochaine version. Une autre solution est de rattacher tout simplement le LIST au TAB une nouvelle fois. Regarde ceci: - Code:
-
dim res%,TO%,txt$,o%(2)
dll_on "KGF.dll"
height 0,500 width 0,700
TO% = dll_call1("CreateTabObject",handle(0)) res% = dll_call5("TabObjectGeometry",TO%,10,10,width_client(0)-20,height_client(0)-20) txt$ = "Feuil(1)" o%(1) = dll_call2("AddTabObjectTab",TO%,adr(txt$)) res% = dll_call6("TabObjectFunction",TO%,5,o%(1),2,0,0) txt$ = "Feuil(2)" o%(2) = dll_call2("AddTabObjectTab",TO%,adr(txt$)) res% = dll_call6("TabObjectFunction",TO%,5,o%(2),2,0,0)
' ------------------------------------------------------------------------------ ' cas 1 sort_on avant ratachement, le list reste à sa place ' ------------------------------------------------------------------------------ List 1 height 1,height_client(0)-50 width 1,int((width_client(0)-35)/2) top 1,5 left 1,5 font_name 1,"Courier New" font_bold 1 sort_on 1 res% = dll_call3("AddObjectToTabObjectTab",TO%,o%(1),handle(1)) ' res% = dll_call3("AddSimpleObjectToTabObjectTab",TO%,o%(1),object_internal(1))
item_add 1,"item 1" item_add 1,"item 3" item_add 1,"item 2"
' ------------------------------------------------------------------------------ ' cas 2 sort N après ratachement (activer la ligne 48 pour voir le pb) ' ------------------------------------------------------------------------------
List 2 height 2,height_client(0)-50 width 2,int((width_client(0)-35)/2) top 2,5 left 2,left(1)+width(1)+5 font_name 2,"Courier New" font_bold 2 res% = dll_call3("AddObjectToTabObjectTab",TO%,o%(1),handle(2)) ' res% = dll_call3("AddSimpleObjectToTabObjectTab",TO%,o%(1),object_internal(2)) item_add 2,"item 1" item_add 2,"item 3" item_add 2,"item 2" dim h1%, h2% h1% = handle(2) sort 2 res% = dll_call3("AddObjectToTabObjectTab",TO%,o%(1),handle(2)) h2% = handle(2) message "Handle avant sort: "+str$(h1%)+" handle après sort: "+str$(h2%) end | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 18 Fév 2017 - 11:51 | |
| C' est encore Casse-cou... J' aurai besoin d' un peu plus d' explication sur les identifiants spéciaux dans synedit. - Qu' appelles tu un identifiant spécial ? - A quoi que ca sert ? - Comment on s' en sert de ces bébêtes ? Je suis sûr, ou presque, que cela est dans les discutions mais lesquelles... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 18 Fév 2017 - 12:26 | |
| Schématiquement, un identifiant spécial est un mot-clé auquel on a associé une valeur. Comme exemple, prenons celui qui est défini par défaut, lors de la création d'un objet Synedit: - Citation :
- #APP=C:\SyneditApplication\
Il représente le dossier dans lequel le programme est supposé chercher ses fichiers (ou le début de l'arborecence des dossiers). Chaque objet Synedit créé a sa propre liste d'identifiants. Ces listes sont indépendantes les unes des autres. On peut créer autant d'identifiants que requis. Ils ont toujours le format - Citation :
- #nom=valeur
Les identifiants sont créés par SyneditFunction code 15 (SF_LoadIndentifier%). Si un identifiant existe déjà, sa valeur sera remplacé. C'est le cas par exemple pour imposer un dossier application personnalisé. On peut placer un identifiant n'importe où dans le texte d'un projet Synedit. Il sera maintenu et sauvegardé tel quel. Lorsqu'on exporte et sauvegarde le contenu d'un projet Synedit dans un fichier externe, alors tous les identifiants seront remplacés automatiquement par la valeur qui leur est associé. On peut ainsi coder facilement des informations du type du dossier d'application, nom de l'auteur, version, adresses (mail ou autre), bref, toutes sortes d'informations de type chaîne de caractères qu'il serait fastidieux de retaper plusieurs fois. Et une simple modification de la valeur d'un identifiant sara reproduite automatiquement pour toutes les occurrences de cette identifiant, lors d'un nouvel export dans un fichier externe. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 18 Fév 2017 - 12:44 | |
| En gros, il se transforme un peu comme #INCLUDE dans Panoramic Editor. Si je fais une librairie de procedures avec un fichier contenant les noms et adresses je peux pour chaque procedure définir un identifiant et les inclure avec. Je vais triturer cette fonction... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 18 Fév 2017 - 13:08 | |
| Oui, en gros, c'est ça. Mais ça agit au milieu d'une chaîne de caractères, pas seulement au niveau des lignes comme #INCLUDE dans Panoramic. Exemple: - Code:
-
' définir " s$ = "#AUTEUR=Yannick" res% = dll_call3("SyneditFunction",SE%,SF_LoadIndentifier%,adr(s$)) ... ' afficher l'auteur dans le libellé de l'objet 3, insérer la ligne en fin de texte s$ = "caption 3,"#AUTEUR" res% = dll_call3("SyneditFunction",SE%,SF_LoadIndentifier%,adr(s$))
Tu vois, ça se fait n'importe ou... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 18 Fév 2017 - 13:46 | |
| Ok Klaus, ca y est j' ai compris. Je comprends vite si on m' explique longtemps. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Mer 22 Fév 2017 - 18:04 | |
| Bonsoir Klaus !
Je rencontre toujours un problème avec le déplacement par les flèches dans SYNEDIT
J'ai vu que Yannick a aussi soulevé le problème. Paut être pourra t il en dire plus que moi sur ce problème ?
Je viens de reprendre un programme à zéro pour faire ce test.
J'ai bien le focus et les flèches au démarrage qui déplacent bien le curseur
Ensuite je clique dans un menu déroulant qui m'affiche un MESSAGE à l'écran que je fais disparaître en validant par OK. A partir de là je n'ai plus la possibilité d'utiliser le déplacement des flèches et la fonction concernant le focus n'y fait rien !
Bizarre non ?! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 22 Fév 2017 - 18:16 | |
| Ben non, ce n'est PAS bizarre. C'est normal ! Quoi ? Je déraisonne ? Que nenni ! C'est une histoire de focus. Lorsque tu cliques en-dehors de l'objet Synedit, ce dernier a perdu le focus qui passe sur l'objet que tu viens de cliquer. Or, les évènements générés par la frappe des touches, même les flèches, sont envoyées à l'objet Windows qui a le focus. Logique. Et donc, ce n'est plus l'objet Synedit... Solution ? En fin de traitement de la fonction du menu (ou ailleurs où tu as peut-être cliqué), il faut faire: - Code:
-
res% = dll_call3("SyneditFunction",SE%,2,0) ou - Code:
-
res% = dll_call3("SyneditFunction",SE%,SF_Activate%,0) si tu utilises ma procedure Sub SyneditFunctionCodes() (voir la doc). Et tout va rentrer dans l'ordre. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Mer 22 Fév 2017 - 18:23 | |
| Oui, en fait il faut te faire une "minisub" pour un "minibug" et la placer après chaque évènement. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Mer 22 Fév 2017 - 19:05 | |
| Désolé mais ça ne fonctionne pas !
Je voulais placer le code ici mais a priori çà ne fonctionne pas non plus... Je ne peux plus le mettre entre les balise CODE !
Quand tout s'en mêle décidément... Je tenterai plus tard... ou pas... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Mer 22 Fév 2017 - 20:25 | |
| J'abandonne pour mettre le fichier en ligne... Je l'ai déposé sur https://my.cloudme.com/minibug/panoramicLe mot de passe est : panoramic123 Le fichier est : editeur.bas Si tu peux jeter un œil et me dire d’où ça vient car là je sèche et ce depuis plusieurs semaines maintenant ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 22 Fév 2017 - 20:46 | |
| Je vais vois ça cette nuit. EDIT J'ai téléchargé... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 23 Fév 2017 - 0:58 | |
| Pour le problème de Synedit: C'est lié au fait qu'il se trouve dans un TAB qui lui-même est dans un Container_Tab qu lui-même est dans form 0. Ceci est un bug, et il faudra que je le corrige. En attendant, je te propose de précéder l'appel à SyneditFunction code 2 par un "set_focus 0", et ça marchera. Ceci dit, j'ai apporté de petites modifications, essentielles, à ton code. Tu les trouveras avec le commentaire Klaus: - Code:
-
' -------------------------------------------------------------------------------------------------------------------------------------------------------------
' E d i t e u r P A N O - L I K E
' réalisé par LAURENT
' -------------------------------------------------------------------------------------------------------------------------------------------------------------
LABEL menu , couleurs , style , creation , redimentionner , fermer , changer
DIM s$ , a% , b% , c% , n% , p% , x% , y%
DIM chemin$
DIM no% : no%=1 DIM res% , hd% , fenetre_synedit% DIM clic%
DIM MENU_fich%(13) , MENU_edit%(8) , MENU_choi%(10) , MENU_nume%(2) , MENU_exec%(2) , MENU_aide%(10) , MENU_outi%(7) , MENU_apro%(0) DIM couleurs_mot%(22) , couleurs_com%(22) , couleurs_ch%(22) , couleurs_fd%(22) DIM style_mot%(3) , style_com%(3) , style_ch%(3)
DIM PANEL_menu%(8) DIM COMBO_police% , COMBO_taille%
DIM CONT_TAB_synedit% DIM EDIT_synedit% DIM TAB_synedit%
' ----- DATAS MENU ----- DATA "Fichier" , "Nouveau" , "-" , "Ouvrir" , "Enregistrer" , "-" , "Fermer" , "-" , "Imprimer" , "-" , "Executable (.exe)" , "Application (.exe)" , "-" , "Quitter" DATA "Edition" , "Annuler" , "-" , "Couper" , "Copier" , "Coller" , "-" , "Rechercher" , "Remplacer" DATA "Choix" , "Couleur Mots-clés" , "Style Mots-clés" , "-" , "Couleur Commentaires" , "Style Commentaires" , "-" , "Couleur Chaines" , "Style Chaines" , "-" , "Couleur fond" DATA "Numérotation" , "Avec lignes" , "Sans lignes" DATA "Execution" , "Exécuter" , "Stopper" DATA "Aide" , "Manuel utilisateur - Partie 1 : Langage de référence" , "Manuel utilisateur - Partie 2 : Objets système" , "Manuel utilisateur - Partie 3 : Dessin" DATA "Manuel utilisateur - Partie 4 : SCENE2D et sprites" , "Manuel utilisateur - Partie 5 : SCENE3D et objets 3D" , "Manuel utilisateur - Partie 6 : Fichiers et répertoires" DATA "Manuel utilisateur - Partie 7 : Système" , "Conseils" , "Manuel de référence" , "Evénements" DATA "Outils" ,"Strings" ,"Codes des touches" ,"-" ,"RVB -> Couleur" ,"Couleur -> RVB" ,"-" ,"Système" DATA "A propos"
couleurs: DATA "000000000Noir" , "000255255Eau" , "000000255Bleu" , "255251240Crème" , "128128128Gris foncé" , "128128128Gris" , "000128000Vert" , "000255000Citron" DATA "192192192Gris clair" , "128000000Marron" , "160160164Gris moyen" , "192220192Vert menthe" , "000000128Bleu marine" , "128128000Vert olive" , "128000128Violet" DATA "255000000Rouge" , "192192192Argent" , "166202240Bleu ciel" , "255000255Fuschia" , "000128128Canard" , "255255255Blanc" , "255255000Jaune"
style: DATA "Gras" , "Italique" , "Souligné"
' ----- DATAS ICONE ----- DATA "Nouveau fichier" , "50" , "Ouvrir fichier" , "49" , "Sauvegarder fichier" , "60" , "Fermer fichier" , "120" DATA "Couper" , "34" , "Copier" , "51" , "Coller" , "52" , "Executer le programme" , "174"
' ----- RECUPERATION DU CHEMIN PRINCIPAL ----- chemin$=DIR_CURRENT$+"\"
' ----- INSTALLATION DU MAIN_MENU ----- MAIN_MENU no% : p%=no% : no%=no%+1 SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 13 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_fich%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 8 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_edit%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 10 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : MENU_choi%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 2 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_nume%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 2 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_exec%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 10 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_aide%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 7 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_outi%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_apro%(0)=no% : no%=no%+1
RESTORE_LABEL couleurs : FOR n%=1 TO 22 : SUB_MENU no% : PARENT no%,MENU_choi%(1) : READ s$ : CAPTION no%,RIGHT$(s$,LEN(s$)-9) : ON_CLICK no%,menu : couleurs_mot%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL couleurs : FOR n%=1 TO 22 : SUB_MENU no% : PARENT no%,MENU_choi%(4) : READ s$ : CAPTION no%,RIGHT$(s$,LEN(s$)-9) : ON_CLICK no%,menu : couleurs_com%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL couleurs : FOR n%=1 TO 22 : SUB_MENU no% : PARENT no%,MENU_choi%(7) : READ s$ : CAPTION no%,RIGHT$(s$,LEN(s$)-9) : ON_CLICK no%,menu : couleurs_ch%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL couleurs : FOR n%=1 TO 22 : SUB_MENU no% : PARENT no%,MENU_choi%(10) : READ s$ : CAPTION no%,RIGHT$(s$,LEN(s$)-9) : ON_CLICK no%,menu : couleurs_fd%(n%)=no% : no%=no%+1 : NEXT n%
RESTORE_LABEL style : FOR n%=1 TO 3 : SUB_MENU no% : PARENT no%,MENU_choi%(2) : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : style_mot%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL style : FOR n%=1 TO 3 : SUB_MENU no% : PARENT no%,MENU_choi%(5) : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : style_com%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL style : FOR n%=1 TO 3 : SUB_MENU no% : PARENT no%,MENU_choi%(8) : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : style_ch%(n%)=no% : no%=no%+1 : NEXT n%
' ----- INSTALLATION DES ICONES DU MENU ----- a%=0 FOR n%=1 TO 8 PANEL no% : PARENT no%,0 : LEFT no%,n%*29-24+a% : TOP no%,5 : WIDTH no%,28 : HEIGHT no%,28 : COLOR no%,220,200,200 : READ s$ : HINT no%,s$ : IF n%=4 OR n%=7 THEN a%=a%+10 FONT_NAME no%,"Wingdings" : FONT_SIZE no%,15 : READ s$ : CAPTION no%,CHR$(VAL(s$)) : ON_CLICK no%,menu : PANEL_menu%(n%)=no% : no%=no%+1 NEXT n%
' ----- INSTALLATION DES COMBO 'POLICE' ET 'TAILLE' ----- COMBO no% : PARENT no%,0 : LEFT no%,270 : TOP no%,8 : WIDTH no%,200 : FONT_NAMES_LOAD no% : COMBO_police%=no% : no%=no%+1 COMBO no% : PARENT no%,0 : LEFT no%,485 : TOP no%,8 : WIDTH no%,50 : FOR n%=8 TO 12 : ITEM_ADD no%,STR$(n%) : NEXT n% : COMBO_taille%=no% : no%=no%+1
' ----- CHARGEMENT DE LA DLL KGF ----- IF FILE_EXISTS(chemin$+"KGF.dll")=0 THEN MESSAGE "Le fichier KGF.dll n'est pas présent !"+CHR$(13)+"Merci de le rajouter dans le dossier." : TERMINATE DLL_ON chemin$+"KGF.dll"
' ----- CREATION DU CONTAINER_TAB POUR LA RECEPTION DES TABS SYNEDIT ----- CONTAINER_TAB no% : FULL_SPACE no% : HEIGHT no%,HEIGHT_CLIENT(0)-40 : TOP no%,40 : CONT_TAB_synedit%=no% : no%=no%+1 GOSUB creation
' ----- GERE LE ON_CLOSE ET LE ON_RESIZE DE LA FORM 0 ----- CAPTION 0,"PANO-LIKE EDITEUR 1.0" : ON_CLOSE 0,fermer : ON_RESIZE 0,redimentionner
END
' ------------------------------------------------------------------------------------------------------------------------------------------------------------
menu:
clic%=NUMBER_CLICK
IF clic%=MENU_fich%(1) OR clic%=PANEL_menu%(1) THEN MESSAGE "nouveau" IF clic%=MENU_fich%(3) OR clic%=PANEL_menu%(2) THEN MESSAGE "ouvrir" IF clic%=MENU_fich%(4) OR clic%=PANEL_menu%(3) THEN MESSAGE "enregistrer" IF clic%=MENU_fich%(6) OR clic%=PANEL_menu%(4) THEN MESSAGE "fermer" IF clic%=MENU_fich%(8) THEN MESSAGE "imprimer" IF clic%=MENU_fich%(10) THEN MESSAGE "executable" IF clic%=MENU_fich%(11) THEN MESSAGE "application" IF clic%=MENU_fich%(13) THEN MESSAGE "quitter" IF clic%=MENU_edit%(1) THEN MESSAGE "annuler" IF clic%=MENU_edit%(3) OR clic%=PANEL_menu%(5) THEN MESSAGE "couper" IF clic%=MENU_edit%(4) OR clic%=PANEL_menu%(6) THEN MESSAGE "copier" IF clic%=MENU_edit%(5) OR clic%=PANEL_menu%(7) THEN MESSAGE "coller" IF clic%=MENU_edit%(7) THEN MESSAGE "rechercher" IF clic%=MENU_edit%(8) THEN MESSAGE "remplacer"
IF clic%>=couleurs_mot%(1) AND clic%<=couleurs_mot%(22) THEN MESSAGE "couleur mots "+CAPTION$(clic%) IF clic%>=couleurs_com%(1) AND clic%<=couleurs_com%(22) THEN MESSAGE "couleur commentaires "+CAPTION$(clic%) IF clic%>=couleurs_ch%(1) AND clic%<=couleurs_ch%(22) THEN MESSAGE "couleur chaines "+CAPTION$(clic%) IF clic%>=couleurs_fd%(1) AND clic%<=couleurs_fd%(22) THEN MESSAGE "couleur fond "+CAPTION$(clic%) IF clic%>=style_mot%(1) AND clic%<=style_mot%(3) THEN MESSAGE "style mots "+CAPTION$(clic%) IF clic%>=style_com%(1) AND clic%<=style_com%(3) THEN MESSAGE "style commentaires "+CAPTION$(clic%) IF clic%>=style_ch%(1) AND clic%<=style_ch%(3) THEN MESSAGE "style chaines "+CAPTION$(clic%)
IF clic%=MENU_nume%(1) THEN MESSAGE "numérotation avec lignes" IF clic%=MENU_nume%(2) THEN MESSAGE "numérotation sans lignes"
IF clic%=MENU_exec%(1) THEN MESSAGE "executer le programme" IF clic%=MENU_exec%(2) THEN MESSAGE "stopper le programme"
IF clic%=MENU_aide%(1) THEN MESSAGE "Manuel utilisateur - Partie 1 : Langage de référence" IF clic%=MENU_aide%(2) THEN MESSAGE "Manuel utilisateur - Partie 2 : Objets système" IF clic%=MENU_aide%(3) THEN MESSAGE "Manuel utilisateur - Partie 3 : Dessin" IF clic%=MENU_aide%(4) THEN MESSAGE "Manuel utilisateur - Partie 4 : SCENE2D et sprites" IF clic%=MENU_aide%(5) THEN MESSAGE "Manuel utilisateur - Partie 5 : SCENE3D et objets 3D" IF clic%=MENU_aide%(6) THEN MESSAGE "Manuel utilisateur - Partie 6 : Fichiers et répertoires" IF clic%=MENU_aide%(7) THEN MESSAGE "Manuel utilisateur - Partie 7 : Système" IF clic%=MENU_aide%(8) THEN MESSAGE "Conseils" IF clic%=MENU_aide%(9) THEN MESSAGE "Manuel de référence" IF clic%=MENU_aide%(10) THEN MESSAGE "Evénements" IF clic%=MENU_outi%(1) THEN MESSAGE "Strings" IF clic%=MENU_outi%(2) THEN MESSAGE "Codes des touches" IF clic%=MENU_outi%(4) THEN MESSAGE "RVB -> Couleur" IF clic%=MENU_outi%(5) THEN MESSAGE "Couleur -> RVB" IF clic%=MENU_outi%(7) THEN MESSAGE "Système"
IF clic%=MENU_apro%(0) THEN MESSAGE "A propos" IF clic%=MENU_apro%(0) THEN res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,42,1)
set_focus 0 res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,2,0)
RETURN
' ----- CREATION DE LA FENETRE SYNEDIT AVEC SON RECEVEUR (EDIT) ET ADAPTATION DE LA TAILLE A LA FORM 0 ----- creation: EDIT no% : HIDE no% : ON_CHANGE no%,changer : EDIT_synedit%=no% : no%=no%+1 TAB no% : PARENT no%,CONT_TAB_synedit% : FULL_SPACE no% : TAB_synedit%=no% : no%=no%+1 res% = dll_call0("SyneditInitialize") : ' Klaus initialiser tout l'environnement de Synedit ! fenetre_synedit%=DLL_CALL2("SyneditCreate",HANDLE(TAB_synedit%),HANDLE(EDIT_synedit%)) res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,38,1) : ' Klaus autoriser le signalement d'un caractère NON traité en interne GOSUB redimentionner RETURN
' ----- REDIMENTIONNE LA FENETRE SYNEDIT A LA TAILLE DU FORM 0 ET DONNE LE FOCUS A SYNEDIT ----- redimentionner: IF WIDTH(0)<565 THEN WIDTH 0,565 IF HEIGHT(0)<300 THEN HEIGHT 0,300 WIDTH CONT_TAB_synedit%,WIDTH_CLIENT(0) : HEIGHT CONT_TAB_synedit%,HEIGHT_CLIENT(0)-40 : TOP CONT_TAB_synedit%,40 FULL_SPACE TAB_synedit% res%=DLL_CALL5("SyneditGeometry",fenetre_synedit%,(-1),(-1),(-1),(-1)) res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,2,0) RETURN
' ----- RECHERCHE LE HANDLE DE LA FORM 0 ET TUE LE PROCESSUS DANS WINDOWS ----- fermer: hd%=HANDLE(0) : res%=DLL_CALL1("KillProcessByHandle",hd%) RETURN
' ----- AFFICHE LES CARACTERES ----- changer: s$ = TEXT$(EDIT_synedit%) CAPTION 0,"Caractère recu: "+s$ res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,2,0) RETURN
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 23 Fév 2017 - 3:58 | |
| Il me semble que tu avais créé une fonction pour donner le focus à un objet par son handle...non ?... Si je me trompe, il serait bien qu' elle existe. Cela permettrait de donner indifféremment le focus à un objet KGF ou panoramic par programme. Perso, je l' appellerai "GiveFocusByHandle". | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Jeu 23 Fév 2017 - 7:30 | |
| Donc il y avait bien un problème...
Je télécharge le code et je regarde tout çà. Merci Klaus !
Edit : Je viens de regarder rapidement et maintenant le comprends mieux...
Concernant [b]res% = dll_call0("SyneditInitialize")[/b] c'était prévu mais pas encore installé. Je vais maintenant pouvoir avancer. Merci Klaus.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 23 Fév 2017 - 10:05 | |
| Bon, essaie comme ça: - Code:
-
' -------------------------------------------------------------------------------------------------------------------------------------------------------------
' E d i t e u r P A N O - L I K E
' réalisé par LAURENT
' -------------------------------------------------------------------------------------------------------------------------------------------------------------
LABEL menu , couleurs , style , creation , redimentionner , fermer , changer
DIM s$ , a% , b% , c% , n% , p% , x% , y%
DIM chemin$
DIM no% : no%=1 DIM res% , hd% , fenetre_synedit% DIM clic%
DIM MENU_fich%(13) , MENU_edit%(8) , MENU_choi%(10) , MENU_nume%(2) , MENU_exec%(2) , MENU_aide%(10) , MENU_outi%(7) , MENU_apro%(0) DIM couleurs_mot%(22) , couleurs_com%(22) , couleurs_ch%(22) , couleurs_fd%(22) DIM style_mot%(3) , style_com%(3) , style_ch%(3)
DIM PANEL_menu%(8) DIM COMBO_police% , COMBO_taille%
DIM CONT_TAB_synedit% DIM EDIT_synedit% DIM TAB_synedit%
' ----- DATAS MENU ----- DATA "Fichier" , "Nouveau" , "-" , "Ouvrir" , "Enregistrer" , "-" , "Fermer" , "-" , "Imprimer" , "-" , "Executable (.exe)" , "Application (.exe)" , "-" , "Quitter" DATA "Edition" , "Annuler" , "-" , "Couper" , "Copier" , "Coller" , "-" , "Rechercher" , "Remplacer" DATA "Choix" , "Couleur Mots-clés" , "Style Mots-clés" , "-" , "Couleur Commentaires" , "Style Commentaires" , "-" , "Couleur Chaines" , "Style Chaines" , "-" , "Couleur fond" DATA "Numérotation" , "Avec lignes" , "Sans lignes" DATA "Execution" , "Exécuter" , "Stopper" DATA "Aide" , "Manuel utilisateur - Partie 1 : Langage de référence" , "Manuel utilisateur - Partie 2 : Objets système" , "Manuel utilisateur - Partie 3 : Dessin" DATA "Manuel utilisateur - Partie 4 : SCENE2D et sprites" , "Manuel utilisateur - Partie 5 : SCENE3D et objets 3D" , "Manuel utilisateur - Partie 6 : Fichiers et répertoires" DATA "Manuel utilisateur - Partie 7 : Système" , "Conseils" , "Manuel de référence" , "Evénements" DATA "Outils" ,"Strings" ,"Codes des touches" ,"-" ,"RVB -> Couleur" ,"Couleur -> RVB" ,"-" ,"Système" DATA "A propos"
couleurs: DATA "000000000Noir" , "000255255Eau" , "000000255Bleu" , "255251240Crème" , "128128128Gris foncé" , "128128128Gris" , "000128000Vert" , "000255000Citron" DATA "192192192Gris clair" , "128000000Marron" , "160160164Gris moyen" , "192220192Vert menthe" , "000000128Bleu marine" , "128128000Vert olive" , "128000128Violet" DATA "255000000Rouge" , "192192192Argent" , "166202240Bleu ciel" , "255000255Fuschia" , "000128128Canard" , "255255255Blanc" , "255255000Jaune"
style: DATA "Gras" , "Italique" , "Souligné"
' ----- DATAS ICONE ----- DATA "Nouveau fichier" , "50" , "Ouvrir fichier" , "49" , "Sauvegarder fichier" , "60" , "Fermer fichier" , "120" DATA "Couper" , "34" , "Copier" , "51" , "Coller" , "52" , "Executer le programme" , "174"
' ----- RECUPERATION DU CHEMIN PRINCIPAL ----- chemin$=DIR_CURRENT$+"\"
' ----- INSTALLATION DU MAIN_MENU ----- MAIN_MENU no% : p%=no% : no%=no%+1 SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 13 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_fich%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 8 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_edit%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 10 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : MENU_choi%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 2 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_nume%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 2 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_exec%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 10 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_aide%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : a%=no% : no%=no%+1 FOR n%=1 TO 7 : SUB_MENU no% : PARENT no%,a% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_outi%(n%)=no% : no%=no%+1 : NEXT n% SUB_MENU no% : PARENT no%,p% : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : MENU_apro%(0)=no% : no%=no%+1
RESTORE_LABEL couleurs : FOR n%=1 TO 22 : SUB_MENU no% : PARENT no%,MENU_choi%(1) : READ s$ : CAPTION no%,RIGHT$(s$,LEN(s$)-9) : ON_CLICK no%,menu : couleurs_mot%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL couleurs : FOR n%=1 TO 22 : SUB_MENU no% : PARENT no%,MENU_choi%(4) : READ s$ : CAPTION no%,RIGHT$(s$,LEN(s$)-9) : ON_CLICK no%,menu : couleurs_com%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL couleurs : FOR n%=1 TO 22 : SUB_MENU no% : PARENT no%,MENU_choi%(7) : READ s$ : CAPTION no%,RIGHT$(s$,LEN(s$)-9) : ON_CLICK no%,menu : couleurs_ch%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL couleurs : FOR n%=1 TO 22 : SUB_MENU no% : PARENT no%,MENU_choi%(10) : READ s$ : CAPTION no%,RIGHT$(s$,LEN(s$)-9) : ON_CLICK no%,menu : couleurs_fd%(n%)=no% : no%=no%+1 : NEXT n%
RESTORE_LABEL style : FOR n%=1 TO 3 : SUB_MENU no% : PARENT no%,MENU_choi%(2) : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : style_mot%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL style : FOR n%=1 TO 3 : SUB_MENU no% : PARENT no%,MENU_choi%(5) : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : style_com%(n%)=no% : no%=no%+1 : NEXT n% RESTORE_LABEL style : FOR n%=1 TO 3 : SUB_MENU no% : PARENT no%,MENU_choi%(8) : READ s$ : CAPTION no%,s$ : ON_CLICK no%,menu : style_ch%(n%)=no% : no%=no%+1 : NEXT n%
' ----- INSTALLATION DES ICONES DU MENU ----- a%=0 FOR n%=1 TO 8 PANEL no% : PARENT no%,0 : LEFT no%,n%*29-24+a% : TOP no%,5 : WIDTH no%,28 : HEIGHT no%,28 : COLOR no%,220,200,200 : READ s$ : HINT no%,s$ : IF n%=4 OR n%=7 THEN a%=a%+10 FONT_NAME no%,"Wingdings" : FONT_SIZE no%,15 : READ s$ : CAPTION no%,CHR$(VAL(s$)) : ON_CLICK no%,menu : PANEL_menu%(n%)=no% : no%=no%+1 NEXT n%
' ----- INSTALLATION DES COMBO 'POLICE' ET 'TAILLE' ----- COMBO no% : PARENT no%,0 : LEFT no%,270 : TOP no%,8 : WIDTH no%,200 : FONT_NAMES_LOAD no% : COMBO_police%=no% : no%=no%+1 COMBO no% : PARENT no%,0 : LEFT no%,485 : TOP no%,8 : WIDTH no%,50 : FOR n%=8 TO 12 : ITEM_ADD no%,STR$(n%) : NEXT n% : COMBO_taille%=no% : no%=no%+1
' ----- CHARGEMENT DE LA DLL KGF ----- IF FILE_EXISTS(chemin$+"KGF.dll")=0 THEN MESSAGE "Le fichier KGF.dll n'est pas présent !"+CHR$(13)+"Merci de le rajouter dans le dossier." : TERMINATE DLL_ON chemin$+"KGF.dll"
' ----- CREATION DU CONTAINER_TAB POUR LA RECEPTION DES TABS SYNEDIT ----- CONTAINER_TAB no% : FULL_SPACE no% : HEIGHT no%,HEIGHT_CLIENT(0)-40 : TOP no%,40 : CONT_TAB_synedit%=no% : no%=no%+1 ' hide no%-1 : ' Klaus GOSUB creation
' ----- GERE LE ON_CLOSE ET LE ON_RESIZE DE LA FORM 0 ----- CAPTION 0,"PANO-LIKE EDITEUR 1.0" : ON_CLOSE 0,fermer : ON_RESIZE 0,redimentionner
END
' ------------------------------------------------------------------------------------------------------------------------------------------------------------
menu:
clic%=NUMBER_CLICK
IF clic%=MENU_fich%(1) OR clic%=PANEL_menu%(1) THEN MESSAGE "nouveau" IF clic%=MENU_fich%(3) OR clic%=PANEL_menu%(2) THEN MESSAGE "ouvrir" IF clic%=MENU_fich%(4) OR clic%=PANEL_menu%(3) THEN MESSAGE "enregistrer" IF clic%=MENU_fich%(6) OR clic%=PANEL_menu%(4) THEN MESSAGE "fermer" IF clic%=MENU_fich%(8) THEN MESSAGE "imprimer" IF clic%=MENU_fich%(10) THEN MESSAGE "executable" IF clic%=MENU_fich%(11) THEN MESSAGE "application" IF clic%=MENU_fich%(13) THEN MESSAGE "quitter" IF clic%=MENU_edit%(1) THEN MESSAGE "annuler" IF clic%=MENU_edit%(3) OR clic%=PANEL_menu%(5) THEN MESSAGE "couper" IF clic%=MENU_edit%(4) OR clic%=PANEL_menu%(6) THEN MESSAGE "copier" IF clic%=MENU_edit%(5) OR clic%=PANEL_menu%(7) THEN MESSAGE "coller" IF clic%=MENU_edit%(7) THEN MESSAGE "rechercher" IF clic%=MENU_edit%(8) THEN MESSAGE "remplacer"
IF clic%>=couleurs_mot%(1) AND clic%<=couleurs_mot%(22) THEN MESSAGE "couleur mots "+CAPTION$(clic%) IF clic%>=couleurs_com%(1) AND clic%<=couleurs_com%(22) THEN MESSAGE "couleur commentaires "+CAPTION$(clic%) IF clic%>=couleurs_ch%(1) AND clic%<=couleurs_ch%(22) THEN MESSAGE "couleur chaines "+CAPTION$(clic%) IF clic%>=couleurs_fd%(1) AND clic%<=couleurs_fd%(22) THEN MESSAGE "couleur fond "+CAPTION$(clic%) IF clic%>=style_mot%(1) AND clic%<=style_mot%(3) THEN MESSAGE "style mots "+CAPTION$(clic%) IF clic%>=style_com%(1) AND clic%<=style_com%(3) THEN MESSAGE "style commentaires "+CAPTION$(clic%) IF clic%>=style_ch%(1) AND clic%<=style_ch%(3) THEN MESSAGE "style chaines "+CAPTION$(clic%)
IF clic%=MENU_nume%(1) THEN MESSAGE "numérotation avec lignes" IF clic%=MENU_nume%(2) THEN MESSAGE "numérotation sans lignes"
IF clic%=MENU_exec%(1) THEN MESSAGE "executer le programme" IF clic%=MENU_exec%(2) THEN MESSAGE "stopper le programme"
IF clic%=MENU_aide%(1) THEN MESSAGE "Manuel utilisateur - Partie 1 : Langage de référence" IF clic%=MENU_aide%(2) THEN MESSAGE "Manuel utilisateur - Partie 2 : Objets système" IF clic%=MENU_aide%(3) THEN MESSAGE "Manuel utilisateur - Partie 3 : Dessin" IF clic%=MENU_aide%(4) THEN MESSAGE "Manuel utilisateur - Partie 4 : SCENE2D et sprites" IF clic%=MENU_aide%(5) THEN MESSAGE "Manuel utilisateur - Partie 5 : SCENE3D et objets 3D" IF clic%=MENU_aide%(6) THEN MESSAGE "Manuel utilisateur - Partie 6 : Fichiers et répertoires" IF clic%=MENU_aide%(7) THEN MESSAGE "Manuel utilisateur - Partie 7 : Système" IF clic%=MENU_aide%(8) THEN MESSAGE "Conseils" IF clic%=MENU_aide%(9) THEN MESSAGE "Manuel de référence" IF clic%=MENU_aide%(10) THEN MESSAGE "Evénements" IF clic%=MENU_outi%(1) THEN MESSAGE "Strings" IF clic%=MENU_outi%(2) THEN MESSAGE "Codes des touches" IF clic%=MENU_outi%(4) THEN MESSAGE "RVB -> Couleur" IF clic%=MENU_outi%(5) THEN MESSAGE "Couleur -> RVB" IF clic%=MENU_outi%(7) THEN MESSAGE "Système"
IF clic%=MENU_apro%(0) THEN MESSAGE "A propos" IF clic%=MENU_apro%(0) THEN res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,42,1)
res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,2,0)
RETURN
' ----- CREATION DE LA FENETRE SYNEDIT AVEC SON RECEVEUR (EDIT) ET ADAPTATION DE LA TAILLE A LA FORM 0 ----- creation: EDIT no% : HIDE no% : ON_CHANGE no%,changer : EDIT_synedit%=no% : no%=no%+1 TAB no% : PARENT no%,CONT_TAB_synedit% : FULL_SPACE no% : TAB_synedit%=no% : no%=no%+1 if variable("nf%")=0 then dim nf% nf% = no% : no% = no% + 1 : form nf% : border_hide nf% : ' Klaus width nf%,width(CONT_TAB_synedit%) : height nf%,height(CONT_TAB_synedit%) : ' Klaus : ' Klaus res% = DLL_call3("SetFormParent",handle(nf%),handle(TAB_synedit%),1) : ' Klaus res% = dll_call0("SyneditInitialize") : ' Klaus initialiser tout l'environnement de Synedit ! ' fenetre_synedit%=DLL_CALL2("SyneditCreate",HANDLE(TAB_synedit%),HANDLE(EDIT_synedit%)) fenetre_synedit%=DLL_CALL2("SyneditCreate",HANDLE(nf%),HANDLE(EDIT_synedit%)) : ' Klaus res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,38,1) : ' Klaus autoriser le signalement d'un caractère NON traité en interne GOSUB redimentionner RETURN
' ----- REDIMENTIONNE LA FENETRE SYNEDIT A LA TAILLE DU FORM 0 ET DONNE LE FOCUS A SYNEDIT ----- redimentionner: IF WIDTH(0)<565 THEN WIDTH 0,565 IF HEIGHT(0)<300 THEN HEIGHT 0,300 WIDTH CONT_TAB_synedit%,WIDTH_CLIENT(0) : HEIGHT CONT_TAB_synedit%,HEIGHT_CLIENT(0)-40 : TOP CONT_TAB_synedit%,40 FULL_SPACE TAB_synedit% res%=DLL_CALL5("SyneditGeometry",fenetre_synedit%,(-1),(-1),(-1),(-1)) res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,2,0) RETURN
' ----- RECHERCHE LE HANDLE DE LA FORM 0 ET TUE LE PROCESSUS DANS WINDOWS ----- fermer: hd%=HANDLE(0) : res%=DLL_CALL1("KillProcessByHandle",hd%) RETURN
' ----- AFFICHE LES CARACTERES ----- changer: s$ = TEXT$(EDIT_synedit%) CAPTION 0,"Caractère recu: "+s$ res%=DLL_CALL3("SyneditFunction",fenetre_synedit%,2,0) RETURN
J'ai intercalé un objet FORM entre le TAB et le Synedit. Tout marche maintenant, et il n'y a plus besoin du "set_focus 0". Le problème vient bien le l'objet TAB qui ne réagit pas comme une FORM. Pour le moment, je ne sais pas pourquoi. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Jeu 23 Fév 2017 - 10:52 | |
| - Yannick a écrit:
- Perso, je l' appellerai "GiveFocusByHandle".
Ben, voilà pour un objet Panoramic ! Pardon Klaus pour l'intrusion - Code:
-
rem ============================================================================ rem GiveFocusByHandle de la USER32.DLL rem Equivalent de Set_focus de Panoramic rem ============================================================================
dim GiveFocusByHandle alpha 5 : top 05,020 : left 05,100 : font_bold 5 caption 5,"Je change de focus toutes les 2 s ... <ESC> pour sortir" memo 10 : top 10,050 : left 10,100 edit 20 : top 20,150 : left 20,100 list 30 : top 30,200 : left 30,100 combo 40 : top 40,350 : left 40,100 button 50 : top 50, 400 : left 50,100 dll_on "user32" repeat GiveFocusByHandle = dll_call1("SetFocus",handle(10)) beep : pause 2000 GiveFocusByHandle = dll_call1("SetFocus",handle(20)) beep : pause 2000 GiveFocusByHandle = dll_call1("SetFocus",handle(30)) beep : pause 2000 GiveFocusByHandle = dll_call1("SetFocus",handle(40)) beep : pause 2000 GiveFocusByHandle = dll_call1("SetFocus",handle(50)) beep : pause 2000 until scancode = 27 terminate rem ============================================================================
Pour un objet KGF, c'est à Klaus de faire ou de pas faire. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 23 Fév 2017 - 13:00 | |
| @ Papydall, Cela doit fonctionner avec la handle d' un objet KGF aussi. Cela serait bien si tu le transformais en procedure avec Command et fonction et library Comme silverman avec sa sub pour colorer un Progress_bar. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 23 Fév 2017 - 13:13 | |
| L'API SetFocus fait exactement ce que la commande SET_FOCUS fait. Seule différence: les paramètres. La commande veut un numéro d'objet Panoramic, alors que l'API heut un handle d'un objet quelconque. | |
| | | Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
| | | | KGF_dll - nouvelles versions | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |