Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| KGF_dll - nouvelles versions | |
|
+12JL35 Oscaribout bignono Pedro pascal10000 silverman Jicehel papydall Minibug Marc Yannick Klaus 16 participants | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 23 Fév 2017 - 13:21 | |
| Que ce soit une fonction kgf ou une sub avec library/command/fonction je suis preneur, vu que je ne maitrise ni l' art des dlls ni celui de ces commandes panoramic. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 28 Fév 2017 - 22:12 | |
| Nouvelle version: KGF.dll V7.23 du 28/02/2017Nouveautés: - nouvel objet ObjectMoverModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cet objet peut être placé dans n'mporte quel objet (Panoramic ou en-dehors de Panoramic !!!) pourvu qu'on connaisse son handle. En Panoramic, cela concerne les objets tels que FORM, EDTR, MEMO, PANEL, CONTAINER etc. Il se manifeste graphiquement par un petit carré argenté portant un réricule simple. Il peut être "accroché" par la souris et permet de déplacer l'objet concerné librement, à l'intérieur de son objet parent. On peut ainsi déplacer un mémo ou un bouton, comme on veut. Le principal intérêt réside cependant dans le fait qu'on peut l'utiliser dans une FORM avec BORDER_HIDE ce qui permet de déplacer cette form par la souris, ce qui serait impossible autrement. Dans le programme suivant, il y a plusieurs objets mis en commentaires, et une ligne active créant un objet FORM. Tous portent le numéro 1, pour les besoins de la démo. Il y a aussi un bouton. Un clic sur le bouton (ou alors un clic dans l'objet) fait apparaître l'ObjectMover dans l'objet numéro 1. A partir de là, on peut le déplacer comme si l'on déplaçait une form par sa barre de titre. Un nouveau clic sur le bouton (ou dans l'objet choisi, d'ailleurs) fait diisparaître l'ObjectMover. L'objet ObjectMover peut être placé dans l'objet ciblé de 5 manières différentes, indiquées par un code action à la fonction CreateObjectMover: 0 = placement aux coordonnées (x,y) passées en paramètre 1 = coin en haut à gauche 2 = coin en haut à droite 3 = coin en bas à droite 4 = coin en bas à gauche Dans le programme de démo, ces possibilités sont mises en évidente lorsqu'on réitère l'apparition de l'ObjectMover. La fonction est appelée successivement avec les codes de 0 à 4. - Code:
-
' demo_ObjectMover.bas
label clic1 dim res%, OM%, type%
dll_on "KGF.dll"
' Valable pour tout ce qui a un handle et peut recevoir un clic: form 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' edit 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' spin 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' container 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' panel 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' ...
button 2 : caption 2,"Créer" : on_click 2,clic1
end
clic1: if OM%=0 OM% = dll_call4("CreateObjectMover",handle(1),type%,int(width_client(1)/2)-15,int(height_client(1)/2)-15) type% = type% + 1 if type%=5 then type% = 0 if object_type(1)=7 then to_foreground 1 caption 2,"Supprimer" else OM% = dll_call1("DeleteObjectMover",OM%) caption 2,"Créer" if object_type(1)=7 then to_foreground 1 end_if return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 1 Mar 2017 - 7:17 | |
| Testé et approuvé ! Pratique, surtout pour les programmes de création en wysiwyg mais aussi pour les fenêtre en border_hide que l' on ne pouvait pas déplacer. Petite question, le dessin avec le réticule est il de ton cru ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 1 Mar 2017 - 10:22 | |
| Oui, bien entendu... Ca se voit, non ? Mais je vais le faire évoluer en donnant la possibilité de charger une icône personnalisée, que ce soit une des icônes "système" intégrées dans KGF.dll ou une icône externe. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 1 Mar 2017 - 12:12 | |
| Quelles sont les dimensions et le format de l' image ? Peut être pouvons nous te faire des propositions.... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 1 Mar 2017 - 13:16 | |
| Nouvelle version: KGF.dll V7.24 du 01/03/2017Nouveautés: - nouvelle fonction SetObjectMoverImageModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette fonction permet de remplacer l'image par défaut de l'objet ObjectMover. Cette image, un carré de 30x30 pixels, peut maintenant être chargé à partir - du presse-papier - d'une icône interne de KGF.dll - d'un fichier BMP externe Dans tous les cas, l'image est adaptée (façon STRETCH_ON) aux dimensions de 30x30 pixels. Le programme de démo a été adapté à cela. L'image par défaut est remplacée par un simple carré rouge mis en presse-papier. Il y a un SPIN donnant le numéro d'une icône de la liste interne. Si zéro, on utilisera le presse-papier. Sinon, on utilise l'icône dont le numéro est affiché (205 par défaut dans ce programme): - Code:
-
' demo_ObjectMover.bas
label clic1 dim res%, OM%, type%
dll_on "KGF.dll"
' Valable pour tout ce qui a un handle et peut recevoir un clic: form 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' edit 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' spin 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' container 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' panel 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' ...
button 2 : caption 2,"Créer" : on_click 2,clic1 picture 3 : top 3,40 : left 3,10 : width 3,30 : height 3,30 : color 3,255,0,0 alpha 4 : top 4,90 : left 4,10 : caption 4,"Icône interne:" spin 5 : top 5,110 : left 5,10 : width 5,40 : min 5,0 : max 5,300 : position 5,205
end
clic1: if OM%=0 OM% = dll_call4("CreateObjectMover",handle(1),type%,int(width_client(1)/2)-15,int(height_client(1)/2)-15) type% = type% + 1 if type%=5 then type% = 0 if object_type(1)=7 then to_foreground 1 if position(5)=0 clipboard_copy 3 res% = dll_call3("SetObjectRemoverImage",OM%,0,0) else res% = dll_call3("SetObjectRemoverImage",OM%,1,position(5)) end_if caption 2,"Supprimer" else OM% = dll_call1("DeleteObjectMover",OM%) caption 2,"Créer" if object_type(1)=7 then to_foreground 1 end_if return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 1 Mar 2017 - 13:37 | |
| Cà c' est une bonne idée. Même si 30x30 me parait un peu grand. J' avais deux images à te soumettre en 25x25 là c' est du jpeg, forum oblige mais j' aurai pu les mettre sur le webdav. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 1 Mar 2017 - 14:42 | |
| Merci pour l'icône, Yannick. Je l'ai intégrée dans KGF.dll (sur mes sites et sur le WebDav) ainsi que dans KGF.ilb (WebDav dossier DLLs\IcoLibrary. Et voici le programme de démo qui prend cette icône par défaut (numéro 362): - Code:
-
' demo_ObjectMover.bas
label clic1 dim res%, OM%, type%
dll_on "KGF.dll"
' Valable pour tout ce qui a un handle et peut recevoir un clic: form 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' edit 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' spin 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' container 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' panel 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' ...
button 2 : caption 2,"Créer" : on_click 2,clic1 picture 3 : top 3,40 : left 3,10 : width 3,30 : height 3,30 : color 3,255,0,0 alpha 4 : top 4,90 : left 4,10 : caption 4,"Icône interne:" spin 5 : top 5,110 : left 5,10 : width 5,40 : min 5,0 : max 5,362 : position 5,362
end
clic1: if OM%=0 OM% = dll_call4("CreateObjectMover",handle(1),type%,int(width_client(1)/2)-15,int(height_client(1)/2)-15) type% = type% + 1 if type%=5 then type% = 0 if object_type(1)=7 then to_foreground 1 if position(5)=0 clipboard_copy 3 res% = dll_call3("SetObjectRemoverImage",OM%,0,0) else res% = dll_call3("SetObjectRemoverImage",OM%,1,position(5)) end_if caption 2,"Supprimer" else OM% = dll_call1("DeleteObjectMover",OM%) caption 2,"Créer" if object_type(1)=7 then to_foreground 1 end_if return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 1 Mar 2017 - 15:56 | |
| J' ai essayé : en prenant l' image depuis la dll : en prenant l' image en dehors de la dll : | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 1 Mar 2017 - 16:08 | |
| | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 1 Mar 2017 - 16:11 | |
| L' image est dégradé quand elle est prise dans la dll. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 1 Mar 2017 - 16:22 | |
| Dans la DLL, elle est stockée comme les autres icônes internes de KGF.ilb: en format 16x16 pixels. Puis; agrandie à 30x30 pixels pour l'ObjectMover.
Si tu fais une BMP de 30x30 pixels, tu n'auras aucune déformation. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 2 Mar 2017 - 15:28 | |
| Nouvelle version: KGF.dll V7.25 du 02/03/2017Nouveautés: - CreateMoverImage: ajout de déux paramètres largeur et hauteurModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. On peut maintenant définir librement la taille de l'objet. Si un des paramètres de dimension est passé comme 0 (zéro), il sera automatiquement mis à 16. Si l'on utilise 16 comme hauteur ey width_client(N) comme largeur (avec N étant le récipient de l'objet), alors on obtient une pseudo-barre de titre. Pratique pour une form avec BORDER_HIDE. Voici le programme de débo adapté (avec une taille d'objet de 16x16 par défaut, adaptable à l'écran par des SPINs: - Code:
-
' demo_ObjectMover.bas
label clic1 dim res%, OM%, type%
dll_on "KGF.dll"
' Valable pour tout ce qui a un handle et peut recevoir un clic: form 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' edit 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' spin 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' container 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' panel 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' ...
button 2 : caption 2,"Créer" : on_click 2,clic1 picture 3 : top 3,40 : left 3,10 : width 3,30 : height 3,30 : color 3,255,0,0 alpha 4 : top 4,90 : left 4,10 : caption 4,"Icône interne:" spin 5 : top 5,110 : left 5,10 : width 5,50 : min 5,0 : max 5,362 : position 5,362
alpha 6 : top 6,150 : left 6,10 : caption 6,"Largeur:" spin 7 : top 7,170 : left 7,10 : width 7,50 : min 7,0 : max 7,width_client(1) : position 7,0 alpha 8 : top 8,200 : left 8,10 : caption 8,"Hauteur:" spin 9 : top 9,220 : left 9,10 : width 9,50 : min 9,0 : max 9,height_client(1) : position 9,0
end
clic1: if OM%=0 OM% = dll_call6("CreateObjectMover",handle(1),type%,int(width_client(1)/2)-15,int(height_client(1)/2)-15,position(7),position(9)) type% = type% + 1 if type%=5 then type% = 0 if object_type(1)=7 then to_foreground 1 if position(5)=0 clipboard_copy 3 res% = dll_call3("SetObjectRemoverImage",OM%,0,0) else res% = dll_call3("SetObjectRemoverImage",OM%,1,position(5)) end_if caption 2,"Supprimer" else OM% = dll_call1("DeleteObjectMover",OM%) caption 2,"Créer" if object_type(1)=7 then to_foreground 1 end_if return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 2 Mar 2017 - 18:20 | |
| Heu...Klaus, sur CloudMe, le dossier Panoramic\Dlls\KGF est vide et tout se promène dans le dossier parent... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 2 Mar 2017 - 18:29 | |
| Effectivement... je ne vois pas la raison d'être du sous-dossier KGF. Je l'ai supprimé. Tout est dans le dossier DLLs, comme d'habitude. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 2 Mar 2017 - 19:03 | |
| Voici une petite chose qu'on peut faire avec l'objet ObjectMover: J'en ai créé un placé dans une FORM avec BORDER_HIDE, dans le coin en haut à gauche, avec une hauteur de 22 pixels et une largeur de toute la FORM. Il a une couleur violette (mauve ?), enfin - une couleur, quoi. Puis j'ai placé un bouton dessus, façon barre d'outils. Du coup, on peut déplacer la form comme une form normale, mais elle n'a pas de croix rouge. Et le bouton est actif, bien sûr... Tout ceci est intégré dans le précédent programme de démo: - Code:
-
' demo_ObjectMover.bas
label clic1, clic21 dim res%, OM1%, OM20%, type%
dll_on "KGF.dll"
' Valable pour tout ce qui a un handle et peut recevoir un clic: form 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' edit 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' spin 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' container 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' panel 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' ...
button 2 : caption 2,"Créer" : on_click 2,clic1 picture 3 : top 3,40 : left 3,10 : width 3,30 : height 3,30 : color 3,0,255,255
form 20 : border_hide 20 : top 20,300 : left 20,500 clipboard_copy 3 OM20% = dll_call6("CreateObjectMover",handle(20),1,0,0,width_client(20),22) res% = dll_call3("SetObjectMoverImage",OM20%,0,0) button 21 : height 21,20 : top 21,1 : left 21,10 : caption 21,"Cliquez-moi" : on_click 21,clic21 parent 21,20
color 3,255,0,0 alpha 4 : top 4,90 : left 4,10 : caption 4,"Icône interne:" spin 5 : top 5,110 : left 5,10 : width 5,50 : min 5,0 : max 5,362 : position 5,362
alpha 6 : top 6,150 : left 6,10 : caption 6,"Largeur:" spin 7 : top 7,170 : left 7,10 : width 7,50 : min 7,0 : max 7,width_client(1) : position 7,0 alpha 8 : top 8,200 : left 8,10 : caption 8,"Hauteur:" spin 9 : top 9,220 : left 9,10 : width 9,50 : min 9,0 : max 9,height_client(1) : position 9,0
end
clic1: if OM1%=0 OM1% = dll_call6("CreateObjectMover",handle(1),type%,int(width_client(1)/2)-15,int(height_client(1)/2)-15,position(7),position(9)) type% = type% + 1 if type%=5 then type% = 0 if object_type(1)=7 then to_foreground 1 if position(5)=0 clipboard_copy 3 res% = dll_call3("SetObjectMoverImage",OM1%,0,0) else res% = dll_call3("SetObjectMoverImage",OM1%,1,position(5)) end_if caption 2,"Supprimer" else OM1% = dll_call1("DeleteObjectMover",OM1%) caption 2,"Créer" if object_type(1)=7 then to_foreground 1 end_if return clic21: message "Je sais - vous avez voulu essayer..." return
et ça donne ceci: | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 2 Mar 2017 - 20:07 | |
| Bizarre, j' ai un bug à la ligne 23... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 2 Mar 2017 - 20:59 | |
| As-tu la bonne version ? En fait, j'ai changé en catimini le nom de la fonction SetObjectRemoverImage en SetObjectMoverImage. C'est plus logique - l'ancien nom résultait d'une inattention lors de la frappe.
Mais le code posté ci-dessus contient bien le bon nom de fonction, en ligne 23... Tu n'as donc peut-être pas la bonne version de KGF.dll. Je vais la redistribuer, bar sécurité.
C'est fait. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 2 Mar 2017 - 23:39 | |
| J' ai re-télécharger et... çà fonctionne. Petit truc, sur ta capture la barre prend bien toute la largeur du forme mais pas chez moi. J' ai 3 ou 4 pixel de moins pour la barre. c' est un détail. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 3 Mar 2017 - 0:37 | |
| Bizarre. Tu as vu le code ? - Code:
-
OM20% = dll_call6("CreateObjectMover",handle(20),1,0,0,width_client(20),22) On crée l'objet ObjectMover (la barre) avec la largeur intérieure de l'objet 20 (FORM avec BORDER_HIDE). Essaie de donner "+2" ou "+3"... Mais en principe; width_client est supposé donner la bonne largeur. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 3 Mar 2017 - 13:12 | |
| j' ai un autre truc bizarre J' ai créé un form en border_hide avec un panel de 32 pixels plus petit et centré sur le form. Ce qui me fait une sorte de marge de 16 pixels. Avec l' utilisation d' une image de 30 par 30 et un placement sur l' angle haut-droit, de temps en temps, l' image n' est pas bien alignée, voir le form est agrandi. Ce n' est pas systématique. Dès que je retombe sur le truc, je fais une capture. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 6 Mar 2017 - 3:08 | |
| Nouvelle version: KGF.dll V7.26 du 05/03/2017Nouveautés: - SetObjectMoverImage: redéfintion des paramètresModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Il n'y a plus cette petite image "cible" dessinée par moi. Maintenant, par défaut, l'objet ObjectMover se présente par un rectangle de couleur rouge unie. Et lors de son déplacement, il passe au jaune uni. La fonction SetObjectMoverImage a maintenant 5 paramètres. En effet, on peut maintenant spécifier une image pour l'état "normal" et une autre pour l'état "activé" (en cours de déplacement). Chaque objet ObjectMover peut avoir ses propres images - ce n'est pas global. Par défaut, l'image de l'état normal est le rouge uni, et l'image de l'état actif est le jaune uni. Pour chacune des deux images, il y a 2 paramètres: l'origine et un paramètre image. Les valeurs suivantes s'appliquent: Origine=0 ==> pas de changement, paramètre image ignoré Origine=1 ==> on prend le contenu du presse-papier, paramètre image ignoré Origine=2 ==> on prend l'icône interne dont le numéro est le paramètre image Origine=3 ==> on prend le contenu d'un fichier BMP, et le paramètre image est adr(fichier$) Voici le programme de démo, adapté à cela: - Code:
-
' demo_ObjectMover.bas
label clic1, clic21, user dim res% : ' valeur retour des fonctions de la DLL dim OM1%, OM20% : ' objets ObjectMover dim type% : ' valeur passant de façon cyclique de 0 à 4 pour déterminer l'emplacement de OM1% dim EventData%(3) : ' tableau de 4 valeurs rempli par les objets OM1% et OM20% lors d'un USER_EVENT
dll_on "KGF.dll"
' Valable pour tout ce qui a un handle et peut recevoir un clic: form 1 : top 1,60 : left 1,200 : on_click 1,clic1 ' edit 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' spin 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' container 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' panel 1 : top 1,100 : left 1,200 : on_click 1,clic1 ' ...
button 2 : caption 2,"Créer" : on_click 2,clic1 picture 3 : top 3,40 : left 3,10 : width 3,30 : height 3,30 : color 3,0,255,255 picture 31 : top 31,40 : left 31,40 : width 31,30 : height 31,30 : color 31,255,255,0
form 20 : border_hide 20 : top 20,300 : left 20,500 clipboard_copy 3 OM20% = dll_call6("CreateObjectMover",handle(20),1,0,0,width_client(20),22) res% = dll_call5("SetObjectMoverImage",OM20%,0,0,0,0) res% = dll_call2("SetObjectMoverUserEvent",OM20%,adr(EventData%)) button 21 : height 21,20 : top 21,1 : left 21,10 : caption 21,"Cliquez-moi" : on_click 21,clic21 parent 21,20
color 3,255,0,0 alpha 4 : top 4,90 : left 4,10 : caption 4,"Icône interne:" spin 5 : top 5,110 : left 5,10 : width 5,50 : min 5,0 : max 5,362 : position 5,362
alpha 6 : top 6,150 : left 6,10 : caption 6,"Largeur:" spin 7 : top 7,170 : left 7,10 : width 7,50 : min 7,0 : max 7,width_client(1) : position 7,0 alpha 8 : top 8,200 : left 8,10 : caption 8,"Hauteur:" spin 9 : top 9,220 : left 9,10 : width 9,50 : min 9,0 : max 9,height_client(1) : position 9,0
alpha 10 : top 10,260 : left 10,10 : caption 10,"User event:" edit 11 : top 11,280 : left 11,10 : width 11,600
on_user_event user gosub clic1
end
clic1: if OM1%=0 OM1% = dll_call6("CreateObjectMover",handle(1),type%,int(width_client(1)/2)-15,int(height_client(1)/2)-15,position(7),position(9)) res% = dll_call2("SetObjectMoverUserEvent",OM1%,adr(EventData%)) type% = type% + 1 if type%=5 then type% = 0 if object_type(1)=7 then to_foreground 1 if position(5)=0 clipboard_copy 3 res% = dll_call5("SetObjectMoverImage",OM1%,1,0,0,0) clipboard_copy 31 res% = dll_call5("SetObjectMoverImage",OM1%,0,0,1,0) else clipboard_copy 31 res% = dll_call5("SetObjectMoverImage",OM1%,2,position(5),1,0) end_if caption 2,"Supprimer" else OM1% = dll_call1("DeleteObjectMover",OM1%) caption 2,"Créer" if object_type(1)=7 then to_foreground 1 end_if return clic21: message "Je sais - vous avez voulu essayer..." return user: if OM1%<>0 if user_event_WParam=OM1% text 11,"Objet="+hex$(OM1%)+": wparam="+hex$(user_event_wparam)+" lparam="+hex$(user_event_lparam)+" EventData: x="+str$(EventData%(0))+" y="+str$(EventData%(1)) + " lparam="+hex$(EventData%(2))+" objet="+hex$(EventData%(3)) return end_if end_if if OM20%<>0 if user_event_WParam=OM20% text 11,"Objet="+hex$(OM20%)+": wparam="+hex$(user_event_wparam)+" lparam="+hex$(user_event_lparam)+" EventData: x="+str$(EventData%(0))+" y="+str$(EventData%(1)) + " lparam="+hex$(EventData%(2))+" objet="+hex$(EventData%(3)) return end_if end_if text 11,"Oups..." return
Maintenant, l'image des objets ObjectMover change lorsqu'on enfonce le bouton de la souris, et change à nouveau lorsqu'on le relâche. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Lun 6 Mar 2017 - 8:59 | |
| Très intéressant ça. Ca peut aussi faciliter la gestion d'un damier par exemple avec la sélection des pions mais ce n'est qu'une des nombreuses applications possibles... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Lun 6 Mar 2017 - 12:47 | |
| 24 heures d' absence et me voilà déjà obsolète... C' est une bonne chose tout çà, je vais mettre ma copie à jour. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 8 Mar 2017 - 0:04 | |
| Pourquoi les images ne s' affiche t elle pas dans mon treeview ? - Code:
-
dim il%,tv%,file$,res%,txt$,c% file$ = "C:\Users\Yannick\Desktop\images.ilb"
label clic,clic2
dll_on "C:\KGF\KGF.dll"
il% = dll_call2("CreateImageList",16,16) res% = dll_call2("LoadImageList",il%,adr(file$))
message "N° de la librairie : "+str$(il%)+chr$(13)+"Nombre d' images chargées : "+str$(res%+1)
tv% = dll_call3("CreateTreeViewEx",handle(0),1,il%) res% = dll_call5("ResizeTreeView",tv%,5,5,width_client(0)-10,height_client(0)-50)
button 1 width 1,120 top 1,height_client(0)-height(1)-5 left 1,5 caption 1,"Créer un livre" on_click 1,clic
button 2 width 2,120 top 2,height_client(0)-height(1)-5 left 2,left(1)+width(1)+5 caption 2,"Ajouter un chapitre" on_click 2,clic2
end
clic: txt$ = "Nouveau" res% = dll_call4("AddTreeViewRootNode",TV%,adr(txt$),1,2) inactive 1 return
clic2: c%=c%+1 txt$ = "Chapitre "+str$(c%) res% = dll_call3("SelectTreeViewNode",TV%,0,1) res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),3,4) if c%=10 inactive 2 end_if return Si tu veux mon imagelist, j' ai mis un zip "Pb_treeview" sur mon webdav. Et l' imagelist est valide puisque j' arrive à extraire dans le presse papier et à afficher dans un picture les images. | |
| | | Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
| | | | KGF_dll - nouvelles versions | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |