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
» TourD Version 2
par Minibug Aujourd'hui à 1:50

» La métamatière et le peuple
par JL35 Hier à 21:18

» Capture d'une zone de l'écran total
par JL35 Hier à 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Hier à 11:49

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

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

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

» Bizzarerie dans Edge
par Marc 37 Mer 15 Nov 2017 - 17:45

» KGF_dll - nouvelles versions
par Klaus Mer 15 Nov 2017 - 2:08

» Analyser un code Panoramic
par JL35 Lun 13 Nov 2017 - 18:38

» Un bonjour en passant...
par Minibug Dim 12 Nov 2017 - 19:57

» mise a jour calculatrice
par joeeee2017 Dim 12 Nov 2017 - 4:20

» comment accèder à l'heure et à la date d'un fichier
par Klaus Sam 11 Nov 2017 - 0:53

» Compilateur FBPano
par Jicehel Mer 8 Nov 2017 - 15:22

» Mon adresse e-mail
par treehouse Mer 8 Nov 2017 - 14:36

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

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

Partagez | 
 

 Nouvelle fonction pour "percer un trou" dans une form !

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: Nouvelle fonction pour "percer un trou" dans une form !   Lun 21 Juin 2010 - 22:19

J'ai ajouté une nouvelle fonction dans KGF.dll qui permet de percer un trou en forme d'ellipse dans n'importe quelle form ! A suivre: percer des trous rectangulaires et de formes composées de rectangles et d'ellipses, et la creation de forms aux formes composées de rectangles et d'ellipses, et même de parties NON contigües !

Voici l'appel:
Code:

i% = dll_call6("WindowEllipticHole",handle(nform),m,x1,y1,x2,y2)
Tous les paramètres doivent être donnés en entiers, soit en constante numérique, soit en variable avec le %.
nform est le numéro d'objet de la form concernée
m est le mode opératoire: 1=percer 0=boucher le trou
x1,y1 est le coin en haut à gauche du rectangle contenant
x2 est la largeur de l'ellipse
y2 est la hauteur de l'ellipse.

Voici un programme de démo:
Code:
label trouer, boucher
dim i%

memo 1
top 1,40
left 1,10
width 1,400
height 1,300
item_add 1,"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
item_add 1,"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
item_add 1,"ccccccccccccccccccccc"
item_add 1,"dddddddddddddddddddddddddddddddddddddddddddddddddd"
item_add 1,"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
item_add 1,"fffffffffffffffffffffffffffffffffffffffffffff"
item_add 1,"gggggggggggggggggggggggggggggggggggggg"

button 2
top 2,10
left 2,10
caption 2,"Trouer"
on_click 2,trouer

button 3
top 3,10
left 3,120
caption 3,"Boucher"
on_click 3,boucher

dll_on "KGF.dll"
end

trouer:
i% = dll_call6("WindowEllipticHole",handle(0),1,50,60,300,200)
return

boucher:
i% = dll_call6("WindowEllipticHole",handle(0),0,30,60,300,200)
return

end

Amusez-vous bien !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



Nombre de messages : 5979
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Lun 21 Juin 2010 - 23:22

Ça alors c'est spectaculaire !
Encore une fois, un grand bravo Klaus !

Il va falloir écrire un bouquin rien que pour tes dll et leur mode d'emploi/exemples.
N'empêche que ce serait bien si tu joignais chaque fois au zip de la dll sa documentation à jour par exemple au format rtf (à décompacter au même endroit), ce serait bien pratique.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Lun 21 Juin 2010 - 23:31

Je viens de voir ce post, et je grandi avec tes idées.
Bravo
Revenir en haut Aller en bas
JL35



Nombre de messages : 5979
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Lun 21 Juin 2010 - 23:36

Une petite remarque: j'aurais appelé les paramètres x, y, w, h au lieu de x1, y1, x2, y2, les premiers sont les coordonnées, les deux autres les dimensions.

Autre remarque: le x pour boucher (30) n'est pas le même que pour trouer (50) ? et pourtant ça marche...

PS n'y a-t-il pas une confusion dans les paramètres ? si je fais 1, 50, 100, 200, 200 je troue une ellipse au lieu d'un cercle ? si j'augmente le y ça aplatit l'ellipse...

PS2 je crois que j'ai compris, x2 et y2 portent bien leur nom finalement, ce sont les coordonnées opposées du rectangle contenant (et non les largeur et hauteur de l'ellipse).

PS3 (décidément) j'ai l'impression que les paramètres du 'boucher' n'ont aucune importance, ça bouche systématiquement le trou creusé.


Dernière édition par JL35 le Lun 21 Juin 2010 - 23:46, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Lun 21 Juin 2010 - 23:45

Tu as raison pour la doc: je l'intégrerai dans le zip pour la prochaine version, et je tiendrai compte des remarques concernant le nommage des paramètres. La suite viendra rapidement.

Petite remarque: sur mon site, à droite de la ligne pour la DLL, il y a un point d'intérogation clickable qui donne une version succinte de la documentation...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



Nombre de messages : 5979
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Lun 21 Juin 2010 - 23:51

Pour la doc, oui je sais, je l'avais même rapatriée (copier/coller) pour en faire un rtf avec quelques enrichissements (c'est plus joli), mais c'est pas facile à mettre à jour, savoir ce qui a changé...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5979
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Mar 22 Juin 2010 - 0:21

Décidément c'est très amusant cette perçeuse de formes.
Je m'amuse à mettre une image dans un Picture, à faire un trou dedans, puis à superposer avec une autre image pour combiner les deux (en sauvegardant avec une copie partielle d'écran), c'est très marrant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Mar 22 Juin 2010 - 1:22

Joli montage ! Oui, il y a de quoi jouer...

Bientôt, on aura des découpes rectangulaires, puis des combinaisons de multiples découpes rectangulaires et ovales...

Et il y aura aussi la possibilité de construire des form Panoramic ayant la forme d'ellipse ou de toutes sortes de combinaisons d'ellipses, de rectangles, de trous rectanngles et ovales - c'est en cours de test et viendra prochainement. C'est quand-même chouette de pouvoir réellement dessiner la forme de sa "form" Panoramic - qu'est-ce que tu en penses ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



Nombre de messages : 5979
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Mar 22 Juin 2010 - 14:51

Effectivement ça ouvre des horizons... je reconnais que je n'en éprouvais pas le besoin (je n'avais jamais pensé à ça), mais maintenant que l'outil existe ça va donner des idées ! et en plus avec des combinaisons de formes, c'est extraordinaire comme possibilités.
Je suis tout ça de près, merci encore à toi.
Et comme tu as à peine le temps d'annoncer une possibilité future qu'elle est déjà réalisée...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Mer 23 Juin 2010 - 2:20

KGF.dll passe à la version V01.01, et la distribution contient une documentation complète en format RTF.

J'ai ajouté les nouvelles fonctions suivantes, en lien avec le "perçage de trou en forme d'ellipse":
- percer/boucher un trou rectangulaire
- ajouter un rectangle à une région windows complexe
- ajouter une ellipse à une région windows complexe
- percer/boucher un trou selon une région windows complexe

Une région windows complexe est identifiée par un numéro gardé dans un entier, comme dim region%. Elle est initialisée par region%=0, puis construite morceau par morceau en ajoutant rectangles et ellipses. Ces morceaux n'ont PAS besoin d'être contigus, et ils peuvent se chevaucher.

Ces régions serviront bientôt aussi à créer des forms Panoramic de formes "libres".

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



Nombre de messages : 5979
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Mer 23 Juin 2010 - 16:27

Bravo pour la doc au format rtf, c'est quand même beaucoup plus agréable à lire (et ça m'évitera de la mettre à jour moi-même à chaque fois Very Happy ) et d'un autre côté je pense que ce sera plus facile pour toi également.

Tu as réagi un peu vite à ma remarque sur les paramètres du trou, comme je l'ai rectifié après en réalité ce sont bien x1, y1, x2, y2, x2 et y2 n'étant pas les dimensions du trou comme tu l'avais indiqué à tort, mais bien les coordonnées opposées par rapport à x1 et y1. A rectifier dans la doc (et dans la syntaxe).

Remarque: les coordonnées à indiquer doivent ignorer la hauteur du bandeau et de la largeur de la bordure de la Form, alors que les commandes 2D de Panoramic en tiennent compte. Si je reprends ton exemple un peu modifié:
Code:
label trouer, boucher
dim i%, x1, y1, x2, y2, offx, offy
offx = 8: offy = 28: ' offset x et y pour tenir compte des bordures de Form 0

2D_Target_Is 0: ' quadrillage de 50 pixels
for i% =  0 to 550 step 50
    2D_Line i%, 0, i%, 400
next i%
for i% = 0 to 400 step 50
    2D_Line 0, i%, 550, i%
Next i%

button 2: top 2,10: left 2,10: caption 2,"Trouer": on_click 2,trouer
button 3: top 3,10: left 3,120: caption 3,"Boucher": on_click 3,boucher

dll_on "C:\Langages\Panoramic\KGF.dll": ' mon emplacement à moi
end

trouer:
x1 = 150
y1 = 100
x2 = 450
y2 = 300
i% = dll_call6("WindowRectangleHole",handle(0),1,x1+offx,y1+offy,x2+offx,y2+offy)
return

boucher:
i% = dll_call6("WindowRectangleHole",handle(0),0,0,0,0,0)
return
Les paramètres 'coordonnées' du "boucher' sont là pour la forme mais ne sont pas exploités, à confirmer.

Autre remarque, dans mon exemple ci-dessus le 'boucher' ne rétablit pas le graphique qui était derrière le trou.

Il faut dire que je réédite souvent mes messages (j'oublie toujours quelque chose), tant que personne n'a répondu, évidemment.


Dernière édition par JL35 le Mer 23 Juin 2010 - 21:46, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Mer 23 Juin 2010 - 19:20

Je prends ton code et fais des essais. Je te tiendrai au courant. Ceci dir, en ce qui concerne les coordonnées, l'intention était bien de donner les coordonnées du coin en haut à gauche, puis la largeur et la hauteur du rectangle. Je vais voir ça plus en détail, mais l'intention, c'était cela. A suivre.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Mer 23 Juin 2010 - 19:42

Après une rapide inspection des sources, j'ai trouvé un passage non conforme de paramètres à la routine WindowTopMost, dans les deux sources.

Souvent, tu passes le numéro de form directement, au lieu de passer le handle de la form. A d'autres endroits, tu passes correctement le handle.
Voici les endroits qui posent problème:

Nouveau Plan.bas:
lignes 107, 108, 109, 110, et 111
text_simplifié_clipboard.bas:
lignes 282, 458, 635, 1187

Je pense que si tu passes systématiquement handle(7) au lieu de 7 (et de même pour les autres numéros de form), ça ira beaucoup mieux !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



Nombre de messages : 5979
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Mer 23 Juin 2010 - 21:48

J'ignore ton post ci-dessus qui est destiné à cosmos.
J'ai édité mon bout de code ci-dessus pour mettre en évidence la différence entre coordonnées et dimensions, et l'offset dont il faut tenir compte entre les coordonnées Windows et Panoramic (dans le cas où les bordures Panoramic sont visibles).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Mer 23 Juin 2010 - 23:40

OK, JL35, je vais reprendre le code modifié. 0+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Dim 19 Déc 2010 - 5:11

Sur un autre fil de discussion du forum, Cosmos70 m'a fait part d'une anomalie de fonctionnement de la fonction WindowRectangleHole : en essayant de percer un deuxième trou dans une form, le premier semble disparaître.

Après analyse, j'ai trouvé une erreur logique dans mon programme conduisant à cet effet.

Cette erreur est corrigée, et KGF.dll passe à la version 1.09 du 19/12/2010.

Une inversion de paramètres dans la documentation, concernant cette fonction, a également été corrigée.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   Dim 19 Déc 2010 - 11:30

Éfficacité et grandeur d'âme!
Cette année, la Mère Nöel va penser à toi cette année.
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Nouvelle fonction pour "percer un trou" dans une form !   

Revenir en haut Aller en bas
 
Nouvelle fonction pour "percer un trou" dans une form !
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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: