FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
KGF_dll - nouvelles versions - Page 2 Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 2 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -28%
-28% Machine à café avec broyeur ...
Voir le deal
229.99 €

 

 KGF_dll - nouvelles versions

Aller en bas 
+12
JL35
Oscaribout
bignono
Pedro
pascal10000
silverman
Jicehel
papydall
Minibug
Marc
Yannick
Klaus
16 participants
Aller à la page : Précédent  1, 2, 3 ... 21 ... 40  Suivant
AuteurMessage
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 2 EmptyMer 15 Fév 2017 - 2:45

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

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 15 Fév 2017 - 2:46

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




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 2 EmptyMer 15 Fév 2017 - 2:56

Avec Handle(N) sans Sort N :
KGF_dll - nouvelles versions - Page 2 Captur64

Avec Handle(N) avec Sort N :
KGF_dll - nouvelles versions - Page 2 Captur65


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.

KGF_dll - nouvelles versions - Page 2 Captur66

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
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 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 !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 2 EmptyMer 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.
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 2 EmptySam 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... scratch
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptySam 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 2 EmptySam 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.
scratch

Je vais triturer cette fonction... Twisted Evil
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptySam 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...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 2 EmptySam 18 Fév 2017 - 13:46

Ok Klaus, ca y est j' ai compris.

Je comprends vite si on m' explique longtemps.
lol!
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 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 ?!
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re   KGF_dll - nouvelles versions - Page 2 EmptyMer 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.
Laughing
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 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...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 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/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
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyMer 22 Fév 2017 - 20:46

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

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyJeu 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 2 EmptyJeu 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".
Laughing
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyJeu 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.

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyJeu 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyJeu 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.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 2 EmptyJeu 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  Wink
Comme silverman avec sa sub pour colorer un Progress_bar.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 EmptyJeu 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 2 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 2 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 2 sur 40Aller à la page : Précédent  1, 2, 3 ... 21 ... 40  Suivant
 Sujets similaires
-
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» version instantanée PANORAMIC V 0.9.25i6 du 14/12/2013

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: