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
» KGF_dll - nouvelles versions
par pascal10000 Aujourd'hui à 13:15

» Casse-tête : Echanger les positions des cavaliers
par jean_debord Aujourd'hui à 10:21

» demande pour recuperer un text speciale
par silverman Hier à 23:00

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

» Déterminer le Handle de l’objet ayant le focus
par papydall Dim 16 Juil 2017 - 3:15

» Déterminer le HANDLE du Bureau
par papydall Dim 16 Juil 2017 - 1:59

» Généralisation de a fonction OBJECT_INTERNAL
par Klaus Dim 16 Juil 2017 - 1:10

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 KGF_dll - nouvelles versions

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5, 6 ... 10 ... 15  Suivant
AuteurMessage
Yannick

avatar

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

MessageSujet: re   Jeu 23 Mar 2017 - 19:47

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

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 23 Mar 2017 - 20:56

Nouvelle version:
KGF.dll V7.30 du 23/03/2017

Nouveautés:
- VideoCapture: nouveau code action VideoCapture_Action_Info% (Cool

Modules modifiés:
KGF.dll
KGF.chm


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

avatar

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

MessageSujet: re   Jeu 23 Mar 2017 - 22:02

cheers cheers cheers Super !

Maintenant, y a plus qu' à..., et je suis dessus !
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Ven 24 Mar 2017 - 3: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.avi
Pas besoin de télécharger ou enregistrer, il suffit de l'ouvrir dans VLC ou WindowsMediaPlayer.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Ven 24 Mar 2017 - 6:05

Hum...HuuuMMMmmmm !
Comment te dire çà sans te vexer ?.... Embarassed

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

avatar

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

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

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Ven 24 Mar 2017 - 14:36

J'ai amélioré (enfin, j'espère...) la page d'aide pour la fonction VideoCapture.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Ven 24 Mar 2017 - 15:44

Je vais voir cela et je te tiens au courant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Ven 24 Mar 2017 - 18: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 ?....
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

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

avatar

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

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

avatar

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

MessageSujet: re   Ven 24 Mar 2017 - 20: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... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

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

avatar

Nombre de messages : 5840
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: KGF_dll - nouvelles versions   Ven 24 Mar 2017 - 23:19

voir VC_Audio_44K (C'est suffisamment explicite)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 26 Mar 2017 - 13:50

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

Nouveauté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.chm


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

avatar

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

MessageSujet: re   Dim 26 Mar 2017 - 15:25

Chouette ! on va pouvoir taguer les forms...
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

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

avatar

Nombre de messages : 5450
Age : 66
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 27 Mar 2017 - 2:43

Dans KGF.dll – historique des modifications

Citation :

3.52   17/09/2014      Synedit: identifiants spéciaux (#KGF, #APP, ...), corr. pb hhctrl.ocx sous systèmes 32 ou 64 bite


Alors là, c’est trop fort !

 lol! lol! lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 27 Mar 2017 - 3:03

Merci, Papydall ! C'est corrigé ici et dans mes sources...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 28 Mar 2017 - 2:56

Nouvelle version:
KGF.dll V7.32 du 28/03/2017

Nouveautés:
- DrawnCanvas: nouveau code action 6 = dessiner des bulles d'information avec flèche

Modules modifiés:
KGF.dll
KGF.chm


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

avatar

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

MessageSujet: re   Mar 28 Mar 2017 - 5: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... Suspect
Au premier coup de création, tout va bien, les Vc% sont à 0
pour renvoyer du grand vers le petit, opération inverse (logique Wink )
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
pas de messages violents mais rien confused .

Bon, aller, deux ou trois aspro et ca repart !...
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

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

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 28 Mar 2017 - 13:35

Nouvelle version:
KGF.dll V7.33 du 28/03/2017

Nouveautés:
- DrawnCanvas: nouveau code action 7 = dessiner des polygones

Modules modifiés:
KGF.dll
KGF.chm


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

avatar

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

MessageSujet: re   Mar 28 Mar 2017 - 13: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.
Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Mar 28 Mar 2017 - 13:40

Le dernier exemple est assez curieux pour un info bulle...
scratch drunken geek 
...peut être sur la planète de JJN4  alien


lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: KGF_dll - nouvelles versions   

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 5 sur 15Aller à la page : Précédent  1, 2, 3, 4, 5, 6 ... 10 ... 15  Suivant
 Sujets similaires
-
» Nouvelles versions éditeur et firmware FR3X
» Nouvelles versions de TC et TP
» Nouvelles versions de TypViewer 4.015 et suivantes
» Deux nouvelles versions de la Porsche 911 (type 991)
» Dacia : La Success Story Continue Avec Quatre Nouvelles Versions Et Séries Limitées

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: