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
» Une calculatrice en une ligne de programme
KGF_dll - nouvelles versions - Page 39 Emptypar jean_debord Aujourd'hui à 8:01

» Gestion d'un système client-serveur.
KGF_dll - nouvelles versions - Page 39 Emptypar Pedro Hier à 19:31

» Les maths du crocodile
KGF_dll - nouvelles versions - Page 39 Emptypar jean_debord Hier à 10:37

» Naissance de Crocodile Basic
KGF_dll - nouvelles versions - Page 39 Emptypar jean_debord Hier à 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
KGF_dll - nouvelles versions - Page 39 Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
KGF_dll - nouvelles versions - Page 39 Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
KGF_dll - nouvelles versions - Page 39 Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
KGF_dll - nouvelles versions - Page 39 Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
KGF_dll - nouvelles versions - Page 39 Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
KGF_dll - nouvelles versions - Page 39 Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
KGF_dll - nouvelles versions - Page 39 Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
KGF_dll - nouvelles versions - Page 39 Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
KGF_dll - nouvelles versions - Page 39 Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
KGF_dll - nouvelles versions - Page 39 Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

» Bataille-navale
KGF_dll - nouvelles versions - Page 39 Emptypar jjn4 Mer 3 Avr 2024 - 14:08

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment :
Pokémon EV06 : où acheter le Bundle Lot ...
Voir le deal

 

 KGF_dll - nouvelles versions

Aller en bas 
+13
The Gamer
Nardo26
silverman
Minibug
Pedro
mindstorm
pascal10000
Jicehel
papydall
Jean Claude
JL35
Yannick
Klaus
17 participants
Aller à la page : Précédent  1 ... 21 ... 38, 39, 40  Suivant
AuteurMessage
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMar 17 Nov 2015 - 13:44

Nouvelle version:
KGF.dll V5.34 du 17/11/2015

Nouveautés:
- nouvelles fonction UnregisterObjectFromSizeControl, RegisterObjectForSizeControl

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour. Toujours sur le site miroir et le WebDav !

Ces nouvelles fonctions sont documentées dans une nouvelle rubrique "Designer". Elles pourront être utiles à tous ceux qui développent un IDE ou qui veulent dynamiquement changer la disposition d'une fenêtre. On peut ainsi changer la position et/ou les dimensions de n'importe quel objet visuel, simplement en le tirant par la souris: opération "Drag" poour le positionnement et l'opération "ctrl/Drag" pour le dimensionnement. Ceci peut se faire dans un IDE, mais également dans n'importe quel programme Panoramic ! Voici une démo: il suffit de cliquer sur le mémo, le libellé ou le bouton "Test", puis agir dessus:
Code:
' test_DesignDrag.bas

label click, fin

dim res%

button 2 : width 2,100 : caption 2,"Stop"  : on_click 2,fin : left 2,100

' les 3 objets suivants pourront être déplacés et/ou redimensionnés
memo 10 : top 10,40 : on_click 10,click
alpha 11 : top 11,40 : left 11,200 : caption 11,"Libellé" : on_click 11,click
button 12 : top 12,70 : left 12,200 : caption 12,"Test" : on_click 12,click

dll_on "KGF.dll"


end

click:
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer un objet éventuellement capturé
  res% = dll_call5("RegisterObjectForSizeControl",handle(0),object_internal(number_click),200,200,255)
  return
  
fin:
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer l'objet capturé
  return
  

Comme on peut voir, c'est extrêmement simple !


Dernière édition par Klaus le Mar 17 Nov 2015 - 19:05, édité 2 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMar 17 Nov 2015 - 16:25

Bonsoir Klaus !

Très pratique cette petite fonction. cheers

Maintenant que j'ai tout paramétré dans GPP et que ca fonctionne parfaitement, je n'ai pas envie de tout changer ! scratch
Mais je vais quand même y réfléchir... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMar 17 Nov 2015 - 17:08

merci klaus
ça c une fonction qui va être utile
pauvre minibug t'as pas de chance
obliger de tout reparamétré GPP
si tu as du courage
a+
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMar 17 Nov 2015 - 22:50

Nouvelle version:
KGF.dll V5.35 du 17/11/2015

Nouveautés:
- module Designer (SizeControl): affichage et gestion de 8 poignées de redimensionnement

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour. Toujours sur le site miroir et le WebDav !

Le comportement est maintenant beaucoup plus intuitif. Lorsqu'un objet est sélectionné, un cadre nour s'affiche autour du rectangle du designer, montrant 8 poignées. On peut tirer une de ces poignées pour redimensionner l'objet, ou déplacer l'objet entier en le tirant par un point quelconque hors de ces poignées. Il n'est plus nécessaire d'utiliser la touche Control. Tout est géré par la souris.

EDIT

Voici une version étendue du programme de démo, avec un container, un container_tab et des tabs.
Code:
' test_DesignDrag.bas

label click, fin, CT

dim res%, parent%

full_space 0
button 1 : width 1,100 : caption 1,"Container_tab"  : on_click 1,CT
button 2 : width 2,100 : caption 2,"Stop"  : on_click 2,fin : left 2,100

' les 3 objets suivants pourront être déplacés et/ou redimensionnés
memo 10 : top 10,40 : on_click 10,click
alpha 11 : top 11,40 : left 11,200 : caption 11,"Libellé" : on_click 11,click
button 12 : top 12,70 : left 12,200 : caption 12,"Test" : on_click 12,click

container 30 : top 30,150 : left 30,10 : caption 30,"Mon container"
  width 30,300 : height 30,200 : on_click 30,click
list 31 : parent 31,30 : top 31,20 : left 31,10 : on_click 31,click
  item_add 31,"Cliquer ici"

container_tab 40 : top 40,10 : left 40,320 : width 40,400 : height 40,300
tab 41 : parent 41,40 : caption 41,"Premier onglet"
tab 42 : parent 42,40 : caption 42,"Deuxième onglet"
tab 43 : parent 43,40 : caption 43,"Troisième onglet"

alpha 44 : parent 44,41 : top 44,20 : left 44,20 : caption 44,"AAAA" : on_click 44,click
alpha 45 : parent 45,42 : top 45,20 : left 45,20 : caption 45,"BBBB" : on_click 45,click
alpha 46 : parent 46,43 : top 46,20 : left 46,20 : caption 46,"CCCC" : on_click 46,click


dll_on "KGF.dll"
end

CT:
  parent% = object_parent(40)
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer un objet éventuellement capturé
  res% = dll_call5("RegisterObjectForSizeControl",handle(parent%),object_internal(40),200,200,255)
  return

click:
  parent% = object_parent(number_click)
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer un objet éventuellement capturé
  res% = dll_call5("RegisterObjectForSizeControl",handle(parent%),object_internal(number_click),200,200,255)
  return
 
fin:
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer l'objet capturé
  return
 
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMer 18 Nov 2015 - 7:29

Bonjour Klaus

Effectivement, ça devient très convivial.
Hargfff ! Si tu continues comme ça, je vais vraiment être obligé de m'y mettre... Laughing Laughing

En tout cas Bravo Klaus ! Cela ressemble exactement au développement que tu avais fais en pure Panoramic.
Sérieusement, j'y réfléchi.

juste une question : serait il compliquer de changer la couleur de sélection ? ( j'aime pas trop, désolé !)

Edit : Après réflexion Klaus, je me demande s'il n'est pas plus sympa de laisser l'objet visible lors de déplacement.
C'est d'ailleurs ce que je fais dans GPP. tu devrais regarder, tu comprendras peut être mieux ce que je veux dire. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMer 18 Nov 2015 - 10:02

Citation :
serait il compliquer de changer la couleur de sélection ?
La couleur RGB est donnée sous forme de paramètre à la fonction RegisterObjectForSizeControl. En voici la définition (voir la doc):
Code:
res% = dll_call5("RegisterObjectForSizeControl",handle(parent%),object_internal(object%),R%,G%,B%)

Citation :
je me demande s'il n'est pas plus sympa de laisser l'objet visible lors de déplacement.
C'est ce que je voulais faire au début. Mais malheureusement, pour cela, il me faut le handle de l'objet à déplacer. Or, certains objets Panoramic n'ont pas de handle (alpha, picture, ...). Donc, je crée un panel directement dans la DLL, je déssinne dessus ce que je veux (le texte d'aide, le cadre et les poignées) et je déplace et déforme ce panel.

Mais je ne suis pas encore arrivé au bout de ce que je voulais faire avec ça. J'essaie en ce moment de copier une "photo" graphique de l'objet comme image de fond du panel... A suivre.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMer 18 Nov 2015 - 10:38

Re Klaus !

Pour la couleur c'est bien ce qu'il me semblais mais j'avais pas creusé...

Pour l'affichage de l'objet sa serai top !
Perso je déplace directement l'objet par LEFT et TOP et pareil pour le redimensionnement par WIDTH et HEIGHT.
pourquoi tu ne fais pas pareil ?
Aprés il faut juste que tu positionne les points au moins au 4 angles et c'est tout.

Enfin bon a toi de voir ! Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMer 18 Nov 2015 - 11:30

Citation :
pourquoi tu ne fais pas pareil ?
Pour deux raisons:

1. raison principale: il faut que le "vole" la gestion des évènements à Panoramic pour pouvoir gérer le fait de tirer l'objet ou une poignée (évènements MouseDown - MouseMove - MouseUp). Ces évènements ne sont pas accessibles directement en Panoramic, et je ne peux pas intervenit sur me mécanisme interne des évènements de Panoramic. Le le fais donc sur un objet créé dans la DLL, car là, je maîtrise tout

2. Raison annexe: pour dessiner les poignées, il faut le canvas de l'objet. Or, ce canvas est dessiné dans l'évènement OnDraw de l'objet, et celui-ci n'est pas non plus accessible en Panoramic. Pour y accéder, il faut le handle, et certains objets Panoramic n'en ont pas. Et de toutes façons, je ne peux pas "voler" un évènement à Panoramic. Donc, retour à la solution ci-dessus...

Crois-moi, si c'était si simple, il y a longtemps que je l'aurais fait. Je viens de mettre au point la gestion des poignées, et ça a été une vraie difficulté, même pour un objet créé dans la DLL, sans lien avec Panoramic. Impossible de mettre ça en place sur un objet Panoramic.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMer 18 Nov 2015 - 13:27

Nouvelle version:
KGF.dll V5.36 du 18/11/2015

Nouveautés:
- module Designer (SizeControl): affichage de l'image de l'objet pendant l'opération

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour. Toujours sur le site miroir et le WebDav !

Maintenant, l'image de l'objet est maintenue, à la place du rectangle coloré, pendant l'opération, si R=G=B=0. Sinon, le rectangle coloré est appliqué aux couleurs RGB. Voici le programme de démo adapté, avec l'objet container_tab en rectangle coloré, et tous les autres objets avec maintien de l'image:
Code:
' test_DesignDrag.bas

label click, fin, CT

dim res%, parent%

full_space 0
button 1 : width 1,100 : caption 1,"Container_tab"  : on_click 1,CT
button 2 : width 2,100 : caption 2,"Stop"  : on_click 2,fin : left 2,100

' les 3 objets suivants pourront être déplacés et/ou redimensionnés
memo 10 : top 10,40 : on_click 10,click
alpha 11 : top 11,40 : left 11,200 : caption 11,"Libellé" : on_click 11,click
button 12 : top 12,70 : left 12,200 : caption 12,"Test" : on_click 12,click

container 30 : top 30,150 : left 30,10 : caption 30,"Mon container"
  width 30,300 : height 30,200 : on_click 30,click
list 31 : parent 31,30 : top 31,20 : left 31,10 : on_click 31,click
  item_add 31,"Cliquer ici"

container_tab 40 : top 40,10 : left 40,320 : width 40,400 : height 40,300
tab 41 : parent 41,40 : caption 41,"Premier onglet"
tab 42 : parent 42,40 : caption 42,"Deuxième onglet"
tab 43 : parent 43,40 : caption 43,"Troisième onglet"

alpha 44 : parent 44,41 : top 44,20 : left 44,20 : caption 44,"AAAA" : on_click 44,click
alpha 45 : parent 45,42 : top 45,20 : left 45,20 : caption 45,"BBBB" : on_click 45,click
alpha 46 : parent 46,43 : top 46,20 : left 46,20 : caption 46,"CCCC" : on_click 46,click

dll_on "KGF.dll"
end

CT:
  parent% = object_parent(40)
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer un objet éventuellement capturé
  res% = dll_call5("RegisterObjectForSizeControl",handle(parent%),object_internal(40),200,200,255)
  return

click:
  parent% = object_parent(number_click)
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer un objet éventuellement capturé
  res% = dll_call5("RegisterObjectForSizeControl",handle(parent%),object_internal(number_click),0,0,0)
  return
 
fin:
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer l'objet capturé
  return
 
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMer 18 Nov 2015 - 13:27

OK Klaus, je comprends mieux !

Cela parait si simple en Panoramic...
Donc pour l'instant le mieux, c'est d'attendre la suite. scratch Suspect

Bon courage Klaus, je suis sûr que tu vas trouver la solution. cheers
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMer 18 Nov 2015 - 13:35

Ben, essaie le programme de démo avec la toute dernière version...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMer 18 Nov 2015 - 15:54

IL y a de l'idée. Ça avance...

Dommage que ce ne soit qu'une image de l'objet !
Pour l'instant je garde ma façon de faire sur GPP, mais je suis avec grand intérêt tes avancements.

PS :J'ai juste quelques difficultés a trouver le bon fichier KGF entre les liens, le site, le WEBDAV on s'y perd un peu ! Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyMer 18 Nov 2015 - 16:01

Citation :
J'ai juste quelques difficultés a trouver le bon fichier KGF entre les liens, le site, le WEBDAV on s'y perd un peu !

La réponse est ici:
Citation :
La doc et les sources sont à jour. Toujours sur le site miroir et le WebDav !

Le lien vers le WebDav et vers le site miroir sont dans ma signature !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 39 EmptyJeu 19 Nov 2015 - 1:56

Il me semble que le serveur du site n°1 est ok
J' ai pu mettre à jour le site du mag sur Webhost....
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyVen 20 Nov 2015 - 1:45

Nouvelle version:
KGF.dll V5.37 du 20/11/2015

Nouveautés:
- module Designer (SizeControl): refonte complète du fonctionnement

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour. Toujours sur le site miroir et le WebDav !

J'ai refait complètement le fonctionnement du système. Maintenant, il n'est plus question de rectangle de couleur ou d'une copie d'image de l'objet, ni de poignées. Le nouveau fonctionnement dessine un cadre noir autour de l'objet, avec un petit bord planc intérieur. L'objet reste entièrement visible, tel qu'il est. Il suffit de "tirer" un des bords blancs pour déplacer l'objet, ou un des coins pour redimensionner l'objet. Ceci résoud tout problème de déformation visuelle pendant le redimensionnement. On verra toujours l'objet dans sa version réelle.

Sur le plan de la syntaxe, j'ai supprimé des 3 paramètres R%, G% et B% aui n'ont plus de signification, étant donné qu'il n'y a plus de rectangle de couleur.

Voici le programme de démo, adapté à cette version:
Code:
' test_DesignDrag.bas

label click, fin, CT

dim res%, parent%

full_space 0
button 1 : width 1,100 : caption 1,"Container_tab"  : on_click 1,CT
button 2 : width 2,100 : caption 2,"Stop"  : on_click 2,fin : left 2,100

' les 3 objets suivants pourront être déplacés et/ou redimensionnés
memo 10 : top 10,40 : on_click 10,click
alpha 11 : top 11,40 : left 11,200 : caption 11,"Libellé" : on_click 11,click
button 12 : top 12,70 : left 12,200 : caption 12,"Test" : on_click 12,click

container 30 : top 30,150 : left 30,10 : caption 30,"Mon container"
  width 30,300 : height 30,200 : on_click 30,click
list 31 : parent 31,30 : top 31,20 : left 31,10 : on_click 31,click
  item_add 31,"Cliquer ici"

container_tab 40 : top 40,10 : left 40,320 : width 40,400 : height 40,300
tab 41 : parent 41,40 : caption 41,"Premier onglet"
tab 42 : parent 42,40 : caption 42,"Deuxième onglet"
tab 43 : parent 43,40 : caption 43,"Troisième onglet"

alpha 44 : parent 44,41 : top 44,20 : left 44,20 : caption 44,"AAAA" : on_click 44,click
alpha 45 : parent 45,42 : top 45,20 : left 45,20 : caption 45,"BBBB" : on_click 45,click
alpha 46 : parent 46,43 : top 46,20 : left 46,20 : caption 46,"CCCC" : on_click 46,click

dll_on "KGF.dll"
end

CT:
  parent% = object_parent(40)
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer un objet éventuellement capturé
  res% = dll_call2("RegisterObjectForSizeControl",handle(parent%),object_internal(40))
  return

click:
  parent% = object_parent(number_click)
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer un objet éventuellement capturé
  res% = dll_call2("RegisterObjectForSizeControl",handle(parent%),object_internal(number_click))
  return
  
fin:
  res% = dll_call0("UnregisterObjectFromSizeControl") : ' libérer l'objet capturé
  return
  

Ces deux fonctions sont utilisables partout, dans n'importe quel programme Panoramic, même s'il ne s'agit pas d'un IDE. De quoi faire jouer l'utilisateur, sachant que les modifications se font dans le programme actif en mémoire, et non dans l'exécutable contenu dans le fichier EXE.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyVen 20 Nov 2015 - 7:23

Salut Kaus !

En voila une bien belle réalisation, avec tout comme il faut... Laughing

J'étais persuadé que tu allais trouver la solution. Il ne me reste plus qu'a intégrer tout ça dans GPP.
Car là, j'avoue que ça me convient parfaitement.

En plus l'intérêt pour GPP est double :
Avec ton principe, les objets pourront être déplacés soit a partir de la liste des objets a gauche ou bien directement pas un clic dessus. ça c'est super, ça rend GPP encore plus interactif.

Je vais tenter l'intégration ce weekend.

Voila une jolie avancé pour KGF mais aussi du coup pour GPP !
A grand merci a toi Klaus... cheers cheers
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyVen 20 Nov 2015 - 14:01

Nouvelle version:
KGF.dll V5.38 du 20/11/2015

Nouveautés:
- module Designer (SizeControl): utilisable maintenant sur un objet FORM également !

Modules modifiés:
KGF.dll

Les sources sont à jour. Toujours sur le site miroir et le WebDav !

Il y avait une anomalie d'affichage, si l'objet sélectionné était une form. Ceci est corrigé. Accessoirement, si l'objet choisi est une form, le premier paramètre de la fonction RegisterObjectForSizeControl est ignoré. Il peut être passé comme 0, ou comme handle(0) - de toutes façons, il est ignoré.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyVen 20 Nov 2015 - 21:52

Nouvelle version:
KGF.dll V5.39 du 20/11/2015

Nouveautés:
- module Designer (SizeControl): nouveau paramètre opt% pour RegisterObjectForDesigner

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Le site principal est à nouveau actif, mis à jour et en ligne !

Ce nouveau paramètre permet de définir où le rectangle de guidage va s'afficher. Si ce paramètre est 0, ol s'affiche à l'intérieur des limites de l'objet, sans emprise extérieure ! S'il est différent de 0, le cadre s'affiche comme avant, à l'extérieur de l'objet. Ceci est la valeur par défaut. Voici le programme de démo, adapté à cela, avec une combo permettant de choisir la position du cadre:
Code:
' test_DesignDrag.bas

label click, fin, CT

dim res%, parent%

full_space 0
button 1 : width 1,100 : caption 1,"Container_tab"  : on_click 1,CT
button 2 : width 2,100 : caption 2,"Stop"  : on_click 2,fin : left 2,100
combo  3 : width 3,150 : left 3,210
  item_add 3,"Cadre intérieur"
  item_add 3,"Cadre extérieur"

' les 3 objets suivants pourront être déplacés et/ou redimensionnés
memo 10 : top 10,40 : on_click 10,click
alpha 11 : top 11,40 : left 11,200 : caption 11,"Libellé" : on_click 11,click
button 12 : top 12,70 : left 12,200 : caption 12,"Test" : on_click 12,click

container 30 : top 30,150 : left 30,10 : caption 30,"Mon container"
  width 30,300 : height 30,200 : on_click 30,click
list 31 : parent 31,30 : top 31,20 : left 31,10 : on_click 31,click
  item_add 31,"Cliquer ici"

container_tab 40 : top 40,40 : left 40,320 : width 40,400 : height 40,300
tab 41 : parent 41,40 : caption 41,"Premier onglet"
tab 42 : parent 42,40 : caption 42,"Deuxième onglet"
tab 43 : parent 43,40 : caption 43,"Troisième onglet"

alpha 44 : parent 44,41 : top 44,20 : left 44,20 : caption 44,"AAAA" : on_click 44,click
alpha 45 : parent 45,42 : top 45,20 : left 45,20 : caption 45,"BBBB" : on_click 45,click
alpha 46 : parent 46,43 : top 46,20 : left 46,20 : caption 46,"CCCC" : on_click 46,click

dll_on "KGF.dll"
res% = dll_call2("SelectComboBoxItem",handle(3),2)
end

CT:
  parent% = object_parent(40)
  res% = dll_call0("UnregisterObjectFromDesigner") : ' libérer un objet éventuellement capturé
  res% = dll_call3("RegisterObjectForDesigner",handle(parent%),object_internal(40), item_index(3)-1)
  return

click:
  parent% = object_parent(number_click)
  res% = dll_call0("UnregisterObjectFromDesigner") : ' libérer un objet éventuellement capturé
  res% = dll_call3("RegisterObjectForDesigner",handle(parent%),object_internal(number_click),item_index(3)-1)
  return
 
fin:
  res% = dll_call0("UnregisterObjectFromDesigner") : ' libérer l'objet capturé
  return
 
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptyVen 20 Nov 2015 - 22:57

Je vais tester cela !

J'ai maintenant intégré la sélection des objets dans GPP.
Encore merci Klaus Wink

Edit :
Bonne idée le rectangle de sélection a l'intérieur !
Je viens de modifier GPP pour l'intégrer...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptySam 21 Nov 2015 - 10:29

Nouvelle version:
KGF.dll V5.40 du 21/11/2015

Nouveautés:
- module Designer: correction d'un bug dans RegisterObjectForDesigner

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sont à jour.

Auparavent, deux appels successifs de RegisterObjectForDesigner créait deux cadres de sélection, chacun pour son objet. Chaque cadre était utilisable, mais seul le dernier pouvait être supprimé par UnregisterObjectFromDesigner. La correction consiste à désenregister automatiquement l'objet précédent, s'il y en avait un, avant de traiter le suivant, de sorte qu'un seul cadre de sélection ne soit actif à tout instant. Ceci rend inutile d'utiliser UnregisterObjectFromDesigner avant un nouvel appel à RegisterObjectForDesigner, bien que cela ne génère aucune erreur.

Voici le programme de démo adapté:
Code:
' test_DesignDrag.bas

label click, fin, CT

dim res%, parent%

full_space 0
button 1 : width 1,100 : caption 1,"Container_tab"  : on_click 1,CT
button 2 : width 2,100 : caption 2,"Stop"  : on_click 2,fin : left 2,100
combo  3 : width 3,150 : left 3,210
  item_add 3,"Cadre intérieur"
  item_add 3,"Cadre extérieur"

' les 3 objets suivants pourront être déplacés et/ou redimensionnés
memo 10 : top 10,40 : on_click 10,click
alpha 11 : top 11,40 : left 11,200 : caption 11,"Libellé" : on_click 11,click
button 12 : top 12,70 : left 12,200 : caption 12,"Test" : on_click 12,click

container 30 : top 30,150 : left 30,10 : caption 30,"Mon container"
  width 30,300 : height 30,200 : on_click 30,click
list 31 : parent 31,30 : top 31,20 : left 31,10 : on_click 31,click
  item_add 31,"Cliquer ici"

container_tab 40 : top 40,40 : left 40,320 : width 40,400 : height 40,300
tab 41 : parent 41,40 : caption 41,"Premier onglet"
tab 42 : parent 42,40 : caption 42,"Deuxième onglet"
tab 43 : parent 43,40 : caption 43,"Troisième onglet"

alpha 44 : parent 44,41 : top 44,20 : left 44,20 : caption 44,"AAAA" : on_click 44,click
alpha 45 : parent 45,42 : top 45,20 : left 45,20 : caption 45,"BBBB" : on_click 45,click
alpha 46 : parent 46,43 : top 46,20 : left 46,20 : caption 46,"CCCC" : on_click 46,click

dll_on "KGF.dll"
res% = dll_call2("SelectComboBoxItem",handle(3),2)
end

CT:
  parent% = object_parent(40)
  res% = dll_call3("RegisterObjectForDesigner",handle(parent%),object_internal(40), item_index(3)-1)
  return

click:
  parent% = object_parent(number_click)
  res% = dll_call3("RegisterObjectForDesigner",handle(parent%),object_internal(number_click),item_index(3)-1)
  return
 
fin:
  res% = dll_call0("UnregisterObjectFromDesigner") : ' libérer l'objet capturé
  return
 

Encore plus simple...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptySam 21 Nov 2015 - 10:54

c'est noté Klaus. Je met a jour dans le programme.
Merci. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptySam 21 Nov 2015 - 16:34

Klaus, J'ai une petite question a te poser :

Serait il possible d'activer la sélection d'une ligne dans un LIST panoramic ou créer par KGF
Par exemple une dll du style : dll_call2("SelectMemo" , Handle(memo%) , ligne%)

En fait c'est pour GPP.
lorsque je sélectionne l'objet en cliquant dessus, je souhaiterai avoir la sélection simultanément sur le LIST de gauche

J'exclus l'option consistant a se positionner au bon endroit et faire exécuter un clic car trop complexe avec une grande liste et l'ascenseur vertical.

As tu une idée ?
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptySam 21 Nov 2015 - 16:40

Tu peux sélectionner un élément dans une combo ou dans une liste. C'est dans l'aide, section "Objets", rubrique "Gestion des objets LIST et COMBO". Par exemple ceci, pour une liste:
Code:
res% = dll_call2("SelectListBoxItem",hnd%,item%)
Est-ce que c'est ce que tu cherches ? Je m'en sers couramment...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptySam 21 Nov 2015 - 17:02

Nouvelle version:
KGF.dll V5.41 du 21/11/2015

Nouveautés:
- module Designer: ajout fonction DesignerFunction avec le mode multi-sélection

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

La nouvelle fonction aura probablement d'autres extensions, mais pour le moment, elle gère la multi-sélection d'objets. Voici un petit résumé:
DesinerFunction a les mêmes paramètres que RegisterObjectForDesigenr, avec un paramètre supplémentaire en première position qui est le code action:
Code:
res% = dll_call4("DesignerFunction",act%,handle(parent%),object_internal(object%),opt%)

Les valeurs actuellement disponibles pour le code action sont les suivantes:
Citation :
0 = désélectionner tous les objets en multi-sélection
1 = ajouter un objet à la multi-sélection
2 = enlever un objet de la multi-sélection
3 = retourner la liste des objets sélectionnés dans un objet LIST

La multi-sélection permet d'agir simultanément sur tous les objets de la sélection. Pour l'heure, cela jour sur le positionnement, uniquement. Mais on peut ainsi déplacer un groupe d'objets "en bloc", sans modifier les écarts relatifs entre ces objets. C'est une possibilité intéressante.

Voici le programme de démo, adapté à cette nouvelle possibilité. On a une fenêtre à droite avec une liste montant à tout moment les objets sélectionnés (en fait, la valeur décimale de OBJECT_INTERNAL(N)...). Un clic sur une des lignes de cette liste désélectionne cet objet. Une combo en haut de l'écran permet de basculer entre les modes "Un seul objet" (par défaut) et "Multi-sélection". Voici le code:
Code:
' test_DesignDrag.bas

label click, fin, CT, desel, chg

dim res%, parent%, n%, s$, selmode%

full_space 0 : width 0,width(0) - 200
button 1 : width 1,100 : caption 1,"Container_tab"  : on_click 1,CT
button 2 : width 2,100 : caption 2,"Stop"  : on_click 2,fin : left 2,100
combo  3 : width 3,150 : left 3,210
  item_add 3,"Cadre intérieur"
  item_add 3,"Cadre extérieur"
combo 4  : width 4,150 : left 4,370 : on_click 4,chg
  item_add 4,"Un objet seul"
  item_add 4,"Sélection d'objets"

' les 3 objets suivants pourront être déplacés et/ou redimensionnés
memo 10 : top 10,40 : on_click 10,click
alpha 11 : top 11,40 : left 11,200 : caption 11,"Libellé" : on_click 11,click
button 12 : top 12,70 : left 12,200 : caption 12,"Test" : on_click 12,click

container 30 : top 30,150 : left 30,10 : caption 30,"Mon container"
  width 30,300 : height 30,200 : on_click 30,click
list 31 : parent 31,30 : top 31,20 : left 31,10 : on_click 31,click
  item_add 31,"Cliquer ici"

container_tab 40 : top 40,40 : left 40,320 : width 40,400 : height 40,300
tab 41 : parent 41,40 : caption 41,"Premier onglet"
tab 42 : parent 42,40 : caption 42,"Deuxième onglet"
tab 43 : parent 43,40 : caption 43,"Troisième onglet"

alpha 44 : parent 44,41 : top 44,20 : left 44,20 : caption 44,"AAAA" : on_click 44,click
alpha 45 : parent 45,42 : top 45,20 : left 45,20 : caption 45,"BBBB" : on_click 45,click
alpha 46 : parent 46,43 : top 46,20 : left 46,20 : caption 46,"CCCC" : on_click 46,click

form 100 : left 100,width(0)+1 : height 100,height(0) : width 100,200
  caption 100,"Objets sélectionnés"
list 101 : parent 101,100 : full_space 101 : on_click 101,desel

dll_on "KGF.dll"
res% = dll_call2("SelectComboBoxItem",handle(3),2)
res% = dll_call2("SelectComboBoxItem",handle(4),1)
selmode% = item_index(4)
end

CT:
  parent% = object_parent(40)
  select item_index(4)
    case 1: res% = dll_call3("RegisterObjectForDesigner",handle(parent%),object_internal(40), item_index(3)-1)
    case 2: res% = dll_call4("DesignerFunction",1,handle(parent%),object_internal(40), item_index(3)-1)
  end_select
  res% = dll_call4("DesignerFunction",3,handle(101),0,0)
  return

click:
  parent% = object_parent(number_click)
  select item_index(4)
    case 1: res% = dll_call3("RegisterObjectForDesigner",handle(parent%),object_internal(number_click),item_index(3)-1)
    case 2: res% = dll_call4("DesignerFunction",1,handle(parent%),object_internal(number_click),item_index(3)-1)
  end_select
  res% = dll_call4("DesignerFunction",3,handle(101),0,0)
  return
 
fin:
  select item_index(4)
    case 1: res% = dll_call0("UnregisterObjectFromDesigner") : ' libérer l'objet capturé
    case 2: res% = dll_call4("DesignerFunction",0,0,0,0)
  end_select
  res% = dll_call4("DesignerFunction",3,handle(101),0,0)
  return
 
desel:
  s$ = item_read$(101,item_index(101))
  n% = val(s$)
  res% = dll_call4("DesignerFunction",2,handle(parent%),n%,0)
  res% = dll_call4("DesignerFunction",3,handle(101),0,0)
  return
 
chg:
  select selmode%
    case 1: res% = dll_call0("UnregisterObjectFromDesigner") : ' libérer l'objet capturé
    case 2: res% = dll_call4("DesignerFunction",0,0,0,0)
  end_select
  res% = dll_call4("DesignerFunction",3,handle(101),0,0)
  selmode% = item_index(4)
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 39 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 39 EmptySam 21 Nov 2015 - 17:13

Super Klaus, c'est bien ce que je cherche.

Il va juste valoir (de nouveau Laughing ) reprendre le code pour adapter tout ça mais ça vaut le coup.
Un grand merci Klaus ! cheers
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 39 sur 40Aller à la page : Précédent  1 ... 21 ... 38, 39, 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: