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
» Pourquoi le compilateur stagne
par Jean Claude Aujourd'hui à 9:54

» Immortaliser les photos de famille
par jjn4 Hier à 18:29

» Concours de Morpions
par jjn4 Hier à 18:11

» Compilateur FBPano
par jean_debord Hier à 10:12

» Tout est tranquille
par Jean Claude Ven 22 Sep 2017 - 21:41

» Texte en gif animé
par JL35 Ven 22 Sep 2017 - 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
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, 4 ... 9 ... 15  Suivant
AuteurMessage
Yannick

avatar

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

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

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 1 Mar 2017 - 0:12

Nouvelle version:
KGF.dll V7.23 du 28/02/2017

Nouveautés:
- nouvel objet ObjectMover

Modules modifiés:
KGF.dll
KGF.chm


La 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 1 Mar 2017 - 9:17

cheers 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 ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

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

avatar

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

MessageSujet: re   Mer 1 Mar 2017 - 14:12

Quelles sont les dimensions et le format de l' image ?
Peut être pouvons nous te faire des propositions....
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 1 Mar 2017 - 15:16

Nouvelle version:
KGF.dll V7.24 du 01/03/2017

Nouveautés:
- nouvelle fonction SetObjectMoverImage

Modules modifiés:
KGF.dll
KGF.chm


La 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

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

avatar

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

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

avatar

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

MessageSujet: re   Mer 1 Mar 2017 - 17:56

J' ai essayé :

en prenant l' image depuis la dll :

en prenant l' image en dehors de la dll :
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 1 Mar 2017 - 18:08

?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 1 Mar 2017 - 18:11

L' image est dégradé quand elle est prise dans la dll.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mer 1 Mar 2017 - 18: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 2 Mar 2017 - 17:28

Nouvelle version:
KGF.dll V7.25 du 02/03/2017

Nouveautés:
- CreateMoverImage: ajout de déux paramètres largeur et hauteur

Modules modifiés:
KGF.dll
KGF.chm


La 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Jeu 2 Mar 2017 - 20:20

Heu...Klaus,

sur CloudMe, le dossier Panoramic\Dlls\KGF est vide et tout se promène dans le dossier parent...
Suspect
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

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

avatar

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

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

avatar

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

MessageSujet: re   Jeu 2 Mar 2017 - 22:07

Bizarre, j' ai un bug à la ligne 23... scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

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

avatar

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

MessageSujet: re   Ven 3 Mar 2017 - 1:39

J' ai re-télécharger et... çà fonctionne. Laughing
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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

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

avatar

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

MessageSujet: re   Ven 3 Mar 2017 - 15: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.
Suspect 

Dès que je retombe sur le truc, je fais une capture.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 6 Mar 2017 - 5:08

Nouvelle version:
KGF.dll V7.26 du 05/03/2017

Nouveautés:
- SetObjectMoverImage: redéfintion des paramètres

Modules modifiés:
KGF.dll
KGF.chm


La 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5855
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 6 Mar 2017 - 10: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...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: Re   Lun 6 Mar 2017 - 14:47

24 heures d' absence et me voilà déjà obsolète...
Laughing

C' est une bonne chose tout çà, je vais mettre ma copie à jour.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Mer 8 Mar 2017 - 2: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
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 3 sur 15Aller à la page : Précédent  1, 2, 3, 4 ... 9 ... 15  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: