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
» mise a jour calculatrice
par JL35 Aujourd'hui à 22:03

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 20:32

» Compilateur FBPano
par jean_debord Aujourd'hui à 11:07

» Documentation de KGF
par Klaus Hier à 22:52

» Zoom sur une portion d'écran
par JL35 Hier à 21:51

» double guillemets "" dans un EDIT
par pascal10000 Hier à 21:08

» Recherche d'une expression dans un source
par Marc 37 Hier à 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 17 Nov 2017 - 11:49

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 KGF_dll - nouvelles versions

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3 ... 9 ... 16  Suivant
AuteurMessage
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 15 Fév 2017 - 4: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 - 4:46, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 15 Fév 2017 - 4:45

Chez moi la position en top est perdu voir déconnecté de l' onglet.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 15 Fév 2017 - 4:46

On s'est croisé.J'ai édité mon message ci-dessus.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 15 Fév 2017 - 4: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  Sleep Sleep Sleep, 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 15 Fév 2017 - 5: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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 15 Fév 2017 - 12: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.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 15 Fév 2017 - 12: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 18 Fév 2017 - 13: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... scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 18 Fév 2017 - 14: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 18 Fév 2017 - 14: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.
scratch

Je vais triturer cette fonction... Twisted Evil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 18 Fév 2017 - 15: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 18 Fév 2017 - 15:46

Ok Klaus, ca y est j' ai compris.

Je comprends vite si on m' explique longtemps.
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 22 Fév 2017 - 20: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 ?!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 22 Fév 2017 - 20: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: Re   Mer 22 Fév 2017 - 20:23

Oui, en fait il faut te faire une "minisub" pour un "minibug"
et la placer après chaque évènement.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 22 Fév 2017 - 21: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 22 Fév 2017 - 22:25

J'abandonne pour mettre le fichier en ligne...

Je l'ai déposé sur https://my.cloudme.com/minibug/panoramic
Le 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 22 Fév 2017 - 22:46

Je vais vois ça cette nuit.
EDIT
J'ai téléchargé...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 23 Fév 2017 - 2: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 23 Fév 2017 - 5: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".
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2364
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 23 Fév 2017 - 9: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.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 23 Fév 2017 - 12: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 5593
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 23 Fév 2017 - 12: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 23 Fév 2017 - 15: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  Wink
Comme silverman avec sa sub pour colorer un Progress_bar.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 23 Fév 2017 - 15: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: KGF_dll - nouvelles versions   

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 16Aller à la page : Précédent  1, 2, 3 ... 9 ... 16  Suivant
 Sujets similaires
-
» Nouvelles versions éditeur et firmware FR3X
» Nouvelles versions de TC et TP
» Nouvelles versions de TypViewer 4.015 et suivantes
» Deux nouvelles versions de la Porsche 911 (type 991)
» Dacia : La Success Story Continue Avec Quatre Nouvelles Versions Et Séries Limitées

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: