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 Mar 2017 - 17:47 | |
| Super Klaus ! Je viens de rentrer et cela fonctionne. le top serait de pouvoir récupérer les dimensions de l' image en sortie du périphérique pour adapter automatique les dimensions des "écrans virtuels" Si on est ne 640x480 en sortie, on peut avoir un multi écrans avec des 160x120 et un écran principal en 640x480 Si on est avec des caméras en 720x... etc... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 23 Mar 2017 - 18:56 | |
| Nouvelle version: KGF.dll V7.30 du 23/03/2017Nouveautés: - VideoCapture: nouveau code action VideoCapture_Action_Info% (Modules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Ce code action permet de récupérer la largeur et la hauteur de la vidéo fourni par la source vidéo connectée. Voici le programme de démo adaptée (on affiche les dimensions de la vidéo après réussite de la connexion): - Code:
-
' demo_VideoCapture.bas
' constantes de pilotage de la fonction VideoCapture dim VideoCapture_Action_Close% : VideoCapture_Action_Close% = 0 dim VideoCapture_Action_Connect% : VideoCapture_Action_Connect% = 1 dim VideoCapture_Action_VideoFile% : VideoCapture_Action_VideoFile% = 2 dim VideoCapture_Action_Capture% : VideoCapture_Action_Capture% = 3 dim VideoCapture_Action_Geometry% : VideoCapture_Action_Geometry% = 4 dim VideoCapture_Action_Preview% : VideoCapture_Action_Preview% = 5 dim VideoCapture_Action_Photo% : VideoCapture_Action_Photo% = 6 dim VideoCapture_Action_Audio% : VideoCapture_Action_Audio% = 7 dim VideoCapture_Action_Info% : VideoCapture_Action_Info% = 8
dim VideoCapture_Audio_Channels_Mono% : VideoCapture_Audio_Channels_Mono% = 0 dim VideoCapture_Audio_Channels_Stereo% : VideoCapture_Audio_Channels_Stereo% = 1 dim VideoCapture_Audio_Frequency_8000Hz% : VideoCapture_Audio_Frequency_8000Hz% = 0 dim VideoCapture_Audio_Frequency_11025Hz% : VideoCapture_Audio_Frequency_11025Hz% = 1 dim VideoCapture_Audio_Frequency_22050Hz% : VideoCapture_Audio_Frequency_22050Hz% = 2 dim VideoCapture_Audio_Frequency_44100Hz% : VideoCapture_Audio_Frequency_44100Hz% = 3 dim VideoCapture_Audio_Resolution_8Bit% : VideoCapture_Audio_Resolution_8Bit% = 0 dim VideoCapture_Audio_Resolution_16Bit% : VideoCapture_Audio_Resolution_16Bit% = 1
dim VideoCapture_Show% : VideoCapture_Show% = 1 dim VideoCapture_Hide% : VideoCapture_Hide% = 0 dim VideoCapture_Start% : VideoCapture_Start% = 1 dim VideoCapture_Stop% : VideoCapture_Stop% = 0
label connecter, fermer, demarrer, arreter, visualiser, photo, audio
dim res%, VC%, index%, preview%, video$, photo$, img%, vid%, audio%, i%, largeur%, hauteur%
full_space 0 list 1 : left 1,700 : top 1,60 : width 1,400 : height 1,100 memo 2 : hide 2 : bar_both 2 alpha 3 : top 3,40 : left 3,700 : caption 3,"Sources vidéo disponibles:"
button 11 : top 11,10 : left 11,10 : caption 11,"Connecter" : on_click 11,connecter button 13 : top 13,10 : left 13,100 : caption 13,"Démarrer" : on_click 13,demarrer button 14 : top 14,10 : left 14,190 : caption 14,"Arrêter" : on_click 14,arreter : inactive 14 button 15 : top 15,10 : left 15,280 : caption 15,"Fermer" : on_click 15,fermer button 16 : top 16,10 : left 16,370 : caption 16,"Visualiser" : on_click 16,visualiser button 17 : top 17,10 : left 17,460 : caption 17,"Photo" : on_click 17,photo button 18 : top 18,10 : left 18,550 : caption 18,"Audio on" : on_click 18,audio
dll_on "KGF.dll"
res% = dll_call1("GetCaptureDriverNames",handle(2)) index% = 0 if count(2)>0 for i%=1 to count(2) item_add 1,item_read$(2,i%) next i% end_if end
connecter: if item_index(1)>0 then index% = item_index(1) - 1 VC% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Connect%,handle(0),index%,VideoCapture_Hide%,0) res% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Geometry%,10,40,600,400) if (VC%=0) or (res%<0) then message "Connexion: "+str$(VC%)+" Géometrie: "+str$(res%) res% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Info%,adr(largeur%),adr(hauteur%),0,0) message "Format videp "+str$(largeur%)+"x"+str$(hauteur%) return
fermer: VC% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Close%,0,0,0,0) if VC%<>0 then message "Fermeture: "+str$(VC%) caption 16,"Visualiser" preview% = 0 return
demarrer: vid% = vid% + 1 video$ = "MaVideo_"+right$("000"+str$(vid%),4)+".avi" res% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Capture%,VideoCapture_Start%,adr(video$),0,0) inactive 13 active 14 return
arreter: res% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Capture%,VideoCapture_Stop%,0,0,0) inactive 14 active 13 return visualiser: select preview% case 0 preview% = 1 res% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Preview%,VideoCapture_Start%,VideoCapture_Show%,0,0) caption 16,"Bloquer" case 1 preview% = 0 res% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Preview%,VideoCapture_Stop%,VideoCapture_Hide%,0,0) caption 16,"Visualiser" end_select return photo: img% = img% + 1 photo$ = "MaPhoto_"+right$("000"+str$(img%),4)+".bmp" res% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Photo%,adr(photo$),0,0,0) return
audio: if audio%=0 res% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Audio%,1,VideoCapture_Audio_Channels_Mono%,VideoCapture_Audio_Frequency_8000Hz%,VideoCapture_Audio_Resolution_8Bit%) if res%=0 audio% = 1 caption 18,"Audio off" end_if else res% = dll_call6("VideoCapture",VC%,VideoCapture_Action_Audio%,0,0,0,0) if res%=0 audio% = 0 caption 18,"Audio on" end_if end_if return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 23 Mar 2017 - 20:02 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 24 Mar 2017 - 1:16 | |
| Voici un exemple de capture d'une zone d'écran avec l'objet ScreenSnapshot. Je capture le login dans le forum Panoramic, avec une erreur de saisie sur le mot de passe, et réussite au deuxième coup: Snapshot.aviPas besoin de télécharger ou enregistrer, il suffit de l'ouvrir dans VLC ou WindowsMediaPlayer. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 24 Mar 2017 - 4:05 | |
| Hum...HuuuMMMmmmm ! Comment te dire çà sans te vexer ?.... Je sais que tu cherches à rendre plus compréhensible l' aide de Kgf. Je sais que cela part d' un bon sentiment et que cela n' est pas simple. Mais, par pitié, stop !Je viens de mettre le nez dans KGF.chm pour vidéo capture. Je sais qu' il est tard mais cela n' explique pas tout. Arrêtes les variables et reprend comme tu le faisais avant. J' ai un écran assez large mais là, il m' en faut presque deux pour lire le nom d' une variable. Variable qui a une valeur en plus (même si c' est normal ) Mais là, ca devient illisible, je ne sais plus qui fait quoi, comment, pourquoi ?... L' idée de mettre un exemple est bonne par contre. Et la tu peux "Variabiliser" mais pas dans le fichier d' aide, je t' en conjure. Je tairai les noms de ceux auxquels je pense et qui n' y comprendront rien mais le mien est le premier de la liste et les autres ne sont pas obligés de se cacher derrière leurs écrans. Je pense que beaucoup n' ont pas osé le dire. Ne le prends pas mal, j' ai préféré t' en parler avant que tu sois trop avancé dans ce système. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 24 Mar 2017 - 9:49 | |
| - Citation :
- Hum...HuuuMMMmmmm !
Comment te dire çà sans te vexer ? Ne t'inquiète pas - tu ne me vexes pas. Tout retour d'expérience est utile, et je suis toujours prêt à en renir compte. Voilà mon principe. Maintenant, dis-moi exactement quelle page pose problème de lisibilité. est-ce la page documentant la fonction VideoCapture, ou est-ce la page avec le programme de démo ? Dans les deux cas, je peux y remédier. Mais dans ton propre code, tu n'es pas obligé d'utilier ces variables. Dans la page documentant la fonction VideoCapture, il y a le tableau des codes au début, avec leur valeur numérique dans la première colonne. Il suffit d'utiliser les valeurs 0, 1, ..., 8 et ça fonctionnera. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 24 Mar 2017 - 12:36 | |
| J'ai amélioré (enfin, j'espère...) la page d'aide pour la fonction VideoCapture. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 24 Mar 2017 - 13:44 | |
| Je vais voir cela et je te tiens au courant. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 24 Mar 2017 - 16:31 | |
| J' ai mis sur mon webdav un zip "KGFchm_par_Yannick.zip" Il contient un projet helpNdoc d' une page, celle de VideoCapture. C' est ce que j' en ai compris. Si tu veux t' en servir, vas y sans retenu. Il y a un truc qui reste flou. si res% de l' action 1 renvoi VC% dans l' appel, que mettons nous à sa place ?.... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 24 Mar 2017 - 18:27 | |
| - Citation :
- Il y a un truc qui reste flou. si res% de l' action 1 renvoi VC%
dans l' appel, que mettons nous à sa place ?.... La doc dit, par rapport au code res% renvoyé: - Citation :
- pour VideoCapture_Action_Connect%:
0 si erreur VC%<>0 identifiant de l'objet créé si ok pour les autres codes action: -1 si erreur 0 si ok Donc, avec le code action VideoCapture_Action_Connect% (valeur 1), la fonction retourne l'identifiant de l'objet VideoCapture créé. Cet identifiant est à passer en premier paramètre pour tous les appels suivants à cette fonction, afin de bien lui indiquer sur quel objet VideoCapture un travaille. Bien entendu, si tu as plusieurs objets VideoCapture à l'écran, il te faut autant de variables pour recevoir l'identifiant de chaque objet... - Citation :
- J' ai mis sur mon webdav un zip "KGFchm_par_Yannick.zip"
Il contient un projet helpNdoc d' une page, celle de VideoCapture. Je vais regarder cela... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 24 Mar 2017 - 18:35 | |
| Bravo, Yannick ! Il est très bien, ton tableau ! Je vais m'inspirer de cette idée et remanier ma page de façon analogue, en y ajoutant les informations manquantes - valeurs retournées et les codes symboliques pour les constantes. Eh oui, je tiens à ces codes, mais personne n'est obligé de les utiliser. Je trouve simplement que le code est plus lisible ainsi et la maintenance facilité, si l'on revient sur le programme quelques mois plus tard... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 24 Mar 2017 - 18:45 | |
| Si tu tiens aux variables... ...mais par pitié fait les plus courtes : VideoCapture_Audio_Frequency_44100Hz% => Frequency_44100Hz% ou Audio_44100Hz% inutile de reprendre le nom de la fonction quand il n' y en a qu' une. On est dans le chapitre VideoCapture donc les variables s' y rapportent. des Hz c 'est forcement une fréquence. Si on ne le sait pas, il vaut mieux reprendre certaines bases avant de s' aventurer en Prog... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 24 Mar 2017 - 19:02 | |
| Tu oublies, Yannick, que dans un programme réel en Panoramic, si déjà on utilise KGF.dll, il y a des chances qu'on utilise d'autres fonctions de KGF.dll. Et il faut éviter le risque de conflit de noms de variables.
Mais oui, c'est promis, je vais revoir le nommage des variables. Par exemple: VideoCapture_Audio_Frequency_44100Hz% ==> VC_Audio_44100Hz% Faudra que j'y réfléchisse. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Ven 24 Mar 2017 - 21:19 | |
| voir VC_Audio_44K (C'est suffisamment explicite) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 26 Mar 2017 - 12:50 | |
| Nouvelle version: KGF.dll V7.31 du 25/03/2017Nouveautés: - VideoCapture: amélioration de la doc (suivant le modèle fourni par Yannick) - nouvelles fonctions pour dessier et écrire sur un canvas (PICTURE ou FORM)Modules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. VidéoCapture:Yannick avait suggéré une autre présentation de la doc pour cette fonction, afin que ce soit plus clair et facile à lire. J'ai trouvé son idée excellente et je l'ai appliquée, tout en la complétant. J'ai également simplifié les noms symboliques des constantes en Panoramic, tout en sachant qu'on n'est jamais obligé de les utiliser - on peut parfaitement en rester aux constantes numériques. Gestion des canvas: J'ai enfin trouvé le moyen d'intervenir sur le canvas d'un picture ou d'une form (sauf form 0 !), sans avoir à passer par la lourdeur des fonctions de gestion d'image actuellement disponibles dans KGF.dll. En effet, la plupart de ces fonctions imposent de charger une "image interne" (en passant par le presse-papier), d'y appliquer les modifications, puis de récupérer l'image interne (via le presse-papier). Maintenant, on peut intervenir directement sur le canvas d'un picture (ou d'une form, autre que form 0). L' principe est le suivant: 1. on identifie le canvas par la fonction GetCanvas qui retourne un identifiant du canvas 2. on effectue des actions sur ce canvas identifié en appelant la fonction DrawOnCanvas, en lui passant l'identifiant 3. finalement, on libère le canvas par la fonction FreeCanvas. Toutes ces fonctions sont documentées dans la catégorie "Gestion des images", à la fin de la liste de ses fonctions. Pour le moment, la fonction DrawOnCanvas a 5 actions distinctes: 1. tracer une ligne 2. dessiner un rectangle normal, plein ou à fond transparent 3. dessiner un rectangle à coins arrondis, plein ou à fond transparent 4. dessiner une ellipse, pleine ou à fond transparent 5. écrire du texte à un angle quelconque, à fond transparent C'est pour cette dernière fonctionnalité que j'ai developpé cette fonction. En effet, les autres actions n'ont été créées que pendant la phase de mise au point, afin de valider progressivement les différentes techniques mises en place pour implémenter l'action d'écriture de texte. Mais puisqu'elles sont opérationnelles, je les ai laissées, tout en étant conscient qu'elles font double emploi avec certaines commandes Panoramic de la série 2D. Si cette idée d'intervenir directement sun un canvas vous intéresse, et si vous avez des besoins particuliers dans ce domaine, je suis ouvert à toute suggestion, maintenant que, techniquement, la voie est ouverte. Voici un petit programme de démo. Seuls les deuc cercles "fins" sont dessinés par une commande 2D_CIRCLE: le grand cercle tout au début avant l'utilisation de DrawOnCanvas, et le petit cercle après: - Code:
-
' test_picture.bas
dim res%, f$, hdc%, CNV%, params%(20), M1%, txt$, pol$ M1% = -1
picture 1 : top 1,10 : left 1,10 : width 1,400 : height 1,300 2d_target_is 1 2d_circle 200,150,100
dll_on "KGF.dll"
hdc% = handle_canvas(1) CNV% = dll_call2("GetCanvas",object_internal(1),adr(hdc%))
' traits params%(2) = 30 params%(3) = 280 params%(4) = 150 params%(5) = 150 params%(6) = 3 params%(7) = -16 : ' trait clRed res% = dll_call3("DrawOnCanvas",CNV%,1,adr(params%)) params%(2) = -1 params%(3) = 150 params%(4) = 80 params%(5) = 110 params%(6) = 15 params%(7) = -21 : ' trait clYellow res% = dll_call3("DrawOnCanvas",CNV%,1,adr(params%)) params%(2) = -1 params%(3) = 110 params%(4) = 250 params%(5) = 30 params%(6) = 8 params%(7) = -2 : ' trait clBlue res% = dll_call3("DrawOnCanvas",CNV%,1,adr(params%))
' rectangles params%(2) = 200 params%(3) = 180 params%(4) = 290 params%(5) = 230 params%(6) = 3 params%(7) = -13 : ' trait clNavy params%(8) = -7 : ' fond clGreen res% = dll_call3("DrawOnCanvas",CNV%,2,adr(params%)) params%(2) = 230 params%(3) = 30 params%(4) = 320 params%(5) = 80 params%(6) = 5 params%(7) = -13 : ' trait clNavy params%(8) = -99 : ' fond transparent res% = dll_call3("DrawOnCanvas",CNV%,2,adr(params%))
' rectangles arrondis params%(2) = 30 params%(3) = 200 params%(4) = 90 params%(5) = 280 params%(6) = 3 params%(7) = -13 : ' trait clNavy params%(8) = -7 : ' fond clGreen params%(9) = 10 : ' rayon d'arrondi res% = dll_call3("DrawOnCanvas",CNV%,3,adr(params%)) params%(2) = 50 params%(3) = 150 params%(4) = 120 params%(5) = 230 params%(6) = 5 params%(7) = -13 : ' trait clNavy params%(8) = -99 : ' fond transparent params%(9) = 12 : ' rayon d'arrondi res% = dll_call3("DrawOnCanvas",CNV%,3,adr(params%))
' ellipses params%(2) = 100 params%(3) = 220 params%(4) = 210 params%(5) = 270 params%(6) = 3 params%(7) = -13 : ' trait clNavy params%(8) = -7 : ' fond clGreen res% = dll_call3("DrawOnCanvas",CNV%,4,adr(params%)) params%(2) = 130 params%(3) = 30 params%(4) = 190 params%(5) = 120 params%(6) = 5 params%(7) = -13 : ' trait clNavy params%(8) = -99 : ' fond transparent res% = dll_call3("DrawOnCanvas",CNV%,4,adr(params%))
' text txt$ = "Ecriture en travers" pol$ = "Arial Black" params%(2) = 30 params%(3) = 220 params%(4) = adr(txt$) params%(5) = adr(pol$) params%(6) = 200 params%(7) = -21 : ' trait clYellow params%(8) = 0 params%(9) = 32 params%(10) = 0 params%(11) = 1 params%(12) = 1 params%(13) = 0 res% = dll_call3("DrawOnCanvas",CNV%,5,adr(params%))
display
CNV% = dll_call1("FreeCanvas",CNV%)
2d_circle 100,200,40
end
Voici le résultat: Et voici une démo d'écriture inclinée en boucle: - Code:
-
' test_picture_ecriture.bas
dim res%, hdc%, CNV%, params%(20), M1%, txt$, pol$, degre% M1% = -1
picture 1 : top 1,10 : left 1,10 : width 1,400 : height 1,300
dll_on "KGF.dll"
hdc% = handle_canvas(1) CNV% = dll_call2("GetCanvas",object_internal(1),adr(hdc%))
pol$ = "Arial Black" params%(2) = 200 params%(3) = 150 params%(4) = adr(txt$) params%(5) = adr(pol$) params%(6) = 200 params%(7) = -21 : ' trait clYellow params%(8) = 0 params%(9) = 32 params%(10) = 0 params%(11) = 1 params%(12) = 1 params%(13) = 0 for degre%=0 to 340 step 20 txt$ = "Ecriture à "+str$(degre%)+" degrés" params%(4) = adr(txt$) params%(6) = degre%*10 res% = dll_call3("DrawOnCanvas",CNV%,5,adr(params%)) next degre%
display
CNV% = dll_call1("FreeCanvas",CNV%)
end
Et une écriture "dansante arc en ciel: - Code:
-
' test_picture_ecriture_2.bas
dim res%, hdc%, CNV%, params%(20), M1%, txt$, pol$, degre%, i%, c$ M1% = -1
picture 1 : top 1,10 : left 1,10 : width 1,400 : height 1,300
dll_on "KGF.dll"
hdc% = handle_canvas(1) CNV% = dll_call2("GetCanvas",object_internal(1),adr(hdc%))
txt$ = "Ecriture dansante arc en ciel" pol$ = "Arial Black" params%(2) = 10 params%(3) = 150 ' params%(4) = adr(txt$) params%(5) = adr(pol$) params%(6) = 200 ' params%(7) = -16 : ' trait clRed params%(8) = 0 params%(9) = 32 params%(10) = 0 params%(11) = 1 params%(12) = 1 params%(13) = 0 for i%=1 to len(txt$) c$ = mid$(txt$,i%,1) params%(4) = adr(c$) degre% = int(rnd(40)+0.5)-20 params%(6) = degre%*10 params%(7) = 0 - int(rnd(21)+0.5) res% = dll_call3("DrawOnCanvas",CNV%,5,adr(params%)) params%(2) = 20+16*i% next i%
display
CNV% = dll_call1("FreeCanvas",CNV%)
end
Résultat: | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 26 Mar 2017 - 14:25 | |
| Chouette ! on va pouvoir taguer les forms... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 26 Mar 2017 - 14:31 | |
| Oui ! Exemple simple: - Code:
-
' test_picture_ecriture_3.bas
label hello dim res%, hdc%, CNV%, params%(20), M1%, txt$, pol$, degre%, i%, c$ M1% = -1
form 1 : top 1,10 : left 1,10 : width 1,400 : height 1,300
button 2 : parent 2,1 : top 2,40 : left 2,100 : caption 2,"Hello" : on_click 2,hello
dll_on "KGF.dll"
hdc% = handle_canvas(1) CNV% = dll_call2("GetCanvas",object_internal(1),adr(hdc%))
txt$ = "Ecriture dansante arc en ciel" pol$ = "Arial Black" params%(2) = 10 params%(3) = 150 ' params%(4) = adr(txt$) params%(5) = adr(pol$) params%(6) = 200 ' params%(7) = -16 : ' trait clRed params%(8) = 0 params%(9) = 32 params%(10) = 0 params%(11) = 1 params%(12) = 1 params%(13) = 0 for i%=1 to len(txt$) c$ = mid$(txt$,i%,1) params%(4) = adr(c$) degre% = int(rnd(40)+0.5)-20 params%(6) = degre%*10 params%(7) = 0 - int(rnd(21)+0.5) res% = dll_call3("DrawOnCanvas",CNV%,5,adr(params%)) params%(2) = 20+16*i% next i%
txt$ = "Prototype" params%(2) = 10 params%(3) = 200 params%(4) = adr(txt$) params%(5) = adr(pol$) params%(6) = 300 params%(7) = -103 : ' clActiveCaption params%(8) = 0 params%(9) = 72 params%(10) = 0 params%(11) = 1 params%(12) = 1 params%(13) = 0 res% = dll_call3("DrawOnCanvas",CNV%,5,adr(params%))
display
CNV% = dll_call1("FreeCanvas",CNV%)
end
hello: message "On est sur la form 2" return
Résultat: | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| | | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 27 Mar 2017 - 2:03 | |
| Merci, Papydall ! C'est corrigé ici et dans mes sources... | |
| | | 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 Mar 2017 - 1:56 | |
| Nouvelle version: KGF.dll V7.32 du 28/03/2017Nouveautés: - DrawnCanvas: nouveau code action 6 = dessiner des bulles d'information avec flècheModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Ce code permet de dessiner des bulles d'information avec une flèche. Les bulles peuvent être des rectangles simples, rectangles arrondis ou des ellipses. Pour les rectangles, on peut choisir un des 4 côtés ou un des 4 anges comme point de départ de la flèche. Pour les ellipses, la flèche s'attache toujours en direction du centre de l'ellipse. On peut choisir les couleurs du trait et du remplissage, et l'épaisseur du trait. On peut choisir dans tous les cas la position de la bulle et, séparément, la position de la pointe de la flèche. Ce graphisme est destiné à être rempli par du texte via le code action 5. On peut parfaitement imaginer une bulle plutôt verticale et la remplir avec du texte écrit à 90 degrés. Voici le programme de démo. Dans un commentaire au début du texte, on peut choisir le type de bulle (rectangle, rectangle arrondi ou ellipse). Dans le cas de l'ellipse, une seule bulle est dissinée, alors que pour les rectangles, les 8 cas différents de bulles sont dessinées dans le même canvas. Tel quel, le programme est configuré pour des bulles rectangulaires, mais vous pouvez changer cela dans le commentaire en haut: - Code:
-
' test_picture_ecriture_3.bas
dim res%, hdc%, CNV%, params%(20), txt$, pol$, degre%, i%, c$ dim type% type% = 0 : ' rectangle simple ' type% = 1 : ' rectangle arrondi ' type% = 2 : ' ellipse
form 1 : top 1,10 : left 1,10 : width 1,400 : height 1,300
dll_on "KGF.dll"
hdc% = handle_canvas(1) CNV% = dll_call2("GetCanvas",object_internal(1),adr(hdc%))
select type% case 0: ' rectangle simple params%(2) = 50 params%(3) = 50 params%(4) = 110 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 0 : ' départ du coin haut à gauche params%(13) = 10 params%(14) = 10 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 50 params%(4) = 340 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 1 : ' départ du coin haut à droite params%(13) = 370 params%(14) = 10 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 170 params%(4) = 340 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 2 : ' départ du coin bas à droite params%(13) = 370 params%(14) = 240 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 50 params%(3) = 170 params%(4) = 110 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 3 : ' départ du coin bas à gauche params%(13) = 10 params%(14) = 240 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 170 params%(3) = 50 params%(4) = 250 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 4 : ' départ du bord haut params%(13) = 210 params%(14) = 10 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 110 params%(4) = 340 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 5 : ' départ du bord droit params%(13) = 380 params%(14) = 120 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 170 params%(3) = 170 params%(4) = 220 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 6 : ' départ du bord bas params%(13) = 210 params%(14) = 240 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 50 params%(3) = 110 params%(4) = 110 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 7 : ' départ du bord gauche params%(13) = 10 params%(14) = 130 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
case 1: ' rectangle arrondi params%(2) = 50 params%(3) = 50 params%(4) = 110 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 0 : ' départ du coin haut à gauche params%(13) = 10 params%(14) = 10 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 50 params%(4) = 340 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 1 : ' départ du coin haut à droite params%(13) = 370 params%(14) = 10 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 170 params%(4) = 340 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 2 : ' départ du coin bas à droite params%(13) = 370 params%(14) = 240 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 50 params%(3) = 170 params%(4) = 110 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 3 : ' départ du coin bas à gauche params%(13) = 10 params%(14) = 240 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 170 params%(3) = 50 params%(4) = 250 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 4 : ' départ du bord haut params%(13) = 210 params%(14) = 10 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 110 params%(4) = 340 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 5 : ' départ du bord droit params%(13) = 380 params%(14) = 120 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 170 params%(3) = 170 params%(4) = 220 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 6 : ' départ du bord bas params%(13) = 210 params%(14) = 240 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 50 params%(3) = 110 params%(4) = 110 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 7 : ' départ du bord gauche params%(13) = 10 params%(14) = 130 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
case 2: ' ellipse params%(2) = 50 params%(3) = 110 params%(4) = 110 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 2 : ' type de bulle params%(11) = 0 params%(12) = 7 : ' départ du bord gauche params%(13) = 10 params%(14) = 40 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
end_select
display
CNV% = dll_call1("FreeCanvas",CNV%)
end
Résultat "rectangle": Résultat "rectangle arrondi": Résultat "ellipse": Maiintenant, on peut annoter des photos, des captures d'écran, ... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 28 Mar 2017 - 4:26 | |
| Remarques sur la fonction VideoCapture code action 1 Si l' objet est créé visible par3%=1, problèmes ensuite avec le code action 5 Pour créer un centre de control video, j' ai un panel de 9 petits ecrans + 1 grand pour visualiser un des petits en taille "normale". Pour passer du petit au grand ecran il faut deconnecter le peripherique du petit ecran pour le connecter au grand Cela oblige à détruire un pour créer l' autre... Au premier coup de création, tout va bien, les Vc% sont à 0 pour renvoyer du grand vers le petit, opération inverse (logique ) mais là attention , il faut ré initialiser Vc% à 0 avant que la dll lui redonne un numéro Sinon, c' est un plantage blanc, si si...un plantage blanc pas de messages violents mais rien . Bon, aller, deux ou trois aspro et ca repart !... | |
| | | 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 Mar 2017 - 10:13 | |
| - Citation :
- mais là attention affraid , il faut ré initialiser Vc% à 0 avant que la dll lui redonne un numéro
Sinon, c' est un plantage blanc, si si...un plantage blanc Certes... Comme tu vois, dans mon programme de démo, ça se fait automatiquement, puisque le code 0 (VC_Close%) retourne toujours 0: - Code:
-
fermer: VC% = dll_call6("VideoCapture",VC%,VC_Close%,0,0,0,0) if VC%<>0 then message "Fermeture: "+str$(VC%) caption 16,"Visualiser" preview% = 0 return | |
| | | 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 Mar 2017 - 12:35 | |
| Nouvelle version: KGF.dll V7.33 du 28/03/2017Nouveautés: - DrawnCanvas: nouveau code action 7 = dessiner des polygonesModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. On peut dessiner des polygones avec n'importe quel nombre de points, et à fond transparent ou coloré. J'ai adapté le programme de démo, en affichant simultanément les 3 types de bulles de texte et le polygone, sans avoir à choisir la ligne adeauate dans le source: - Code:
-
' test_picture_bulles.bas
dim res%, hdc%, CNV% dim params%(20), txt$, pol$, degre%, i%, c$ dim abscisses%(10), ordonnees%(10)
form 1 : top 1,40 : left 1,10 : width 1,400 : height 1,300 form 2 : top 2,40 : left 2,420 : width 2,400 : height 2,300 form 3 : top 3,350 : left 3,10 : width 3,400 : height 3,300 form 4 : top 4,350 : left 4,420 : width 4,400 : height 4,300
dll_on "KGF.dll"
Type_0() Type_1() Type_2() polygone()
end
sub Type_0(): ' rectangle simple hdc% = handle_canvas(1) CNV% = dll_call2("GetCanvas",object_internal(1),adr(hdc%)) params%(2) = 50 params%(3) = 50 params%(4) = 110 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 0 : ' départ du coin haut à gauche params%(13) = 10 params%(14) = 10 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 50 params%(4) = 340 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 1 : ' départ du coin haut à droite params%(13) = 370 params%(14) = 10 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 170 params%(4) = 340 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 2 : ' départ du coin bas à droite params%(13) = 370 params%(14) = 240 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 50 params%(3) = 170 params%(4) = 110 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 3 : ' départ du coin bas à gauche params%(13) = 10 params%(14) = 240 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 170 params%(3) = 50 params%(4) = 250 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 4 : ' départ du bord haut params%(13) = 210 params%(14) = 10 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 110 params%(4) = 340 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 5 : ' départ du bord droit params%(13) = 380 params%(14) = 120 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 170 params%(3) = 170 params%(4) = 220 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 6 : ' départ du bord bas params%(13) = 210 params%(14) = 240 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 50 params%(3) = 110 params%(4) = 110 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 0 : ' type de bulle params%(11) = 0 params%(12) = 7 : ' départ du bord gauche params%(13) = 10 params%(14) = 130 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%)) display CNV% = dll_call1("FreeCanvas",CNV%) end_sub
sub Type_1(): ' rectangle arrondi hdc% = handle_canvas(2) CNV% = dll_call2("GetCanvas",object_internal(2),adr(hdc%)) params%(2) = 50 params%(3) = 50 params%(4) = 110 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 0 : ' départ du coin haut à gauche params%(13) = 10 params%(14) = 10 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 50 params%(4) = 340 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 1 : ' départ du coin haut à droite params%(13) = 370 params%(14) = 10 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 170 params%(4) = 340 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 2 : ' départ du coin bas à droite params%(13) = 370 params%(14) = 240 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 50 params%(3) = 170 params%(4) = 110 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 3 : ' départ du coin bas à gauche params%(13) = 10 params%(14) = 240 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 170 params%(3) = 50 params%(4) = 250 params%(5) = 90 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 4 : ' départ du bord haut params%(13) = 210 params%(14) = 10 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 280 params%(3) = 110 params%(4) = 340 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 5 : ' départ du bord droit params%(13) = 380 params%(14) = 120 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 170 params%(3) = 170 params%(4) = 220 params%(5) = 200 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 6 : ' départ du bord bas params%(13) = 210 params%(14) = 240 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%))
params%(2) = 50 params%(3) = 110 params%(4) = 110 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 10 : ' rayon de l'arrondi params%(10) = 1 : ' type de bulle params%(11) = 0 params%(12) = 7 : ' départ du bord gauche params%(13) = 10 params%(14) = 130 params%(15) = 20 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%)) display CNV% = dll_call1("FreeCanvas",CNV%) end_sub
sub Type_2() : ' ellipse hdc% = handle_canvas(3) CNV% = dll_call2("GetCanvas",object_internal(3),adr(hdc%)) params%(2) = 50 params%(3) = 110 params%(4) = 110 params%(5) = 160 params%(6) = 1 params%(7) = 0 : ' clBlack params%(8) = -21 : ' clYellow params%(9) = 0 params%(10) = 2 : ' type de bulle params%(11) = 0 params%(12) = 7 : ' départ du bord gauche params%(13) = 10 params%(14) = 40 params%(15) = 10 : ' largeur de la flèche à la base res% = dll_call3("DrawOnCanvas",CNV%,6,adr(params%)) display CNV% = dll_call1("FreeCanvas",CNV%) end_sub
sub Polygone() hdc% = handle_canvas(4) CNV% = dll_call2("GetCanvas",object_internal(4),adr(hdc%))
abscisses%(0) = 30 abscisses%(1) = 80 abscisses%(2) = 40 abscisses%(3) = 200 abscisses%(4) = 180 abscisses%(5) = 250 abscisses%(6) = 200 abscisses%(7) = 60
ordonnees%(0) = 100 ordonnees%(1) = 200 ordonnees%(2) = 250 ordonnees%(3) = 180 ordonnees%(4) = 110 ordonnees%(5) = 120 ordonnees%(6) = 20 ordonnees%(7) = 110
params%(2) = adr(abscisses%) : ' abscisses des points params%(3) = adr(ordonnees%) : ' ordonnées des points params%(4) = 8 : ' nombre de points params%(5) = 0 : ' ./. params%(6) = 3 : ' épaisseur du trait params%(7) = 0 : ' clBlack : ' couleur du trait params%(8) = -21 : ' clYellow : ' couleur de remplissage ' params%(8) = -99 : ' transparent : ' couleur de remplissage res% = dll_call3("DrawOnCanvas",CNV%,7,adr(params%))
display CNV% = dll_call1("FreeCanvas",CNV%) end_sub
end
Et voici le résultat: | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 28 Mar 2017 - 12:36 | |
| @ Klaus, Certes oui mais pas si évident quand, comme moi, tu ne retournes pas sur l' exemple à chaque fois. la fonction étant : res% = dll_call6("VideoCapture",VC%,0,0,0,0,0) si l' utilisateur prend res% pour variable de retour, VC% n' est pas initialisé à 0 d' où ma remarque que VC% doit l' être. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 28 Mar 2017 - 12:40 | |
| | |
| | | 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
| |
| |
| |