FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
KGF_dll - nouvelles versions - Page 5 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 5 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 5 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 5 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 5 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 5 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 5 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 5 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 5 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 5 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 5 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 5 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 5 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 5 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 5 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-29%
Le deal à ne pas rater :
DYSON V8 Origin – Aspirateur balai sans fil
269.99 € 379.99 €
Voir le deal

 

 KGF_dll - nouvelles versions

Aller en bas 
+12
JL35
Oscaribout
bignono
Pedro
pascal10000
silverman
Jicehel
papydall
Minibug
Marc
Yannick
Klaus
16 participants
Aller à la page : Précédent  1, 2, 3, 4, 5, 6 ... 22 ... 40  Suivant
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyJeu 23 Mar 2017 - 17: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
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyJeu 23 Mar 2017 - 18: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
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyJeu 23 Mar 2017 - 20:02

cheers cheers cheers Super !

Maintenant, y a plus qu' à..., et je suis dessus !
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyVen 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.avi
Pas besoin de télécharger ou enregistrer, il suffit de l'ouvrir dans VLC ou WindowsMediaPlayer.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyVen 24 Mar 2017 - 4: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
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyVen 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyVen 24 Mar 2017 - 12:36

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




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyVen 24 Mar 2017 - 13:44

Je vais voir cela et je te tiens au courant.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyVen 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 ?....
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyVen 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...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyVen 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...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyVen 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... Wink
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyVen 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.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyVen 24 Mar 2017 - 21:19

voir VC_Audio_44K (C'est suffisamment explicite)
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyDim 26 Mar 2017 - 12: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:
KGF_dll - nouvelles versions - Page 5 Aa115

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:
KGF_dll - nouvelles versions - Page 5 Aa116
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyDim 26 Mar 2017 - 14:25

Chouette ! on va pouvoir taguer les forms...
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyDim 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:
KGF_dll - nouvelles versions - Page 5 Aa117
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyLun 27 Mar 2017 - 1: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
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyLun 27 Mar 2017 - 2:03

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

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyMar 28 Mar 2017 - 1: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":
KGF_dll - nouvelles versions - Page 5 Aa118

Résultat "rectangle arrondi":
KGF_dll - nouvelles versions - Page 5 Aa211

Résultat "ellipse":
KGF_dll - nouvelles versions - Page 5 Aa310

Maiintenant, on peut annoter des photos, des captures d'écran, ...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyMar 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... 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
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyMar 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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 5 EmptyMar 28 Mar 2017 - 12: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:
KGF_dll - nouvelles versions - Page 5 Aa119
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyMar 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.
Wink
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 5 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 5 EmptyMar 28 Mar 2017 - 12: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
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 5 sur 40Aller à la page : Précédent  1, 2, 3, 4, 5, 6 ... 22 ... 40  Suivant
 Sujets similaires
-
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» version instantanée PANORAMIC V 0.9.25i6 du 14/12/2013

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