- Dessiner un graphique - Boucler sur l'indice d'un attribut ? oO [VB] - VB/VBA/VBS - Programmation
Marsh Posté le 28-02-2004 à 13:52:17
Ben tu as les instruction line, pset et circle
Tu peux aussi utiliser l'api des windows pour faire des trucs plus evolué, comme des polygones ou des courbes de bézier etc.
Marsh Posté le 28-02-2004 à 13:57:33
merci, j'ai réussi a me servir de line, je l'ai mise dans une picturebox.
là où je butte maintenant c'est sur l'avancement du graphique :
10 valeurs par exemple
chaque seconde, j'ajoute une valeur et j'en enleve une.
mais je ne sais pas comment gérer les intéruptions "temporelle" pour en gros actualiser chaque seconde par exemple ? :|
Marsh Posté le 28-02-2004 à 14:04:01
ReplyMarsh Posté le 29-02-2004 à 11:53:07
Bon je m'en suis sorti pour le timer...
maintenant j'ai un REsoucis pour le graphique.
c'est pas général au graphique le soucis, je m'explique :
j'ai créé une ligne (ça pourrait etre n'importe quoi, une textbox ou autre, qu'importe).
je peux modifier ma ligne de cette maniere dans le code :
Code :
|
là ça me fait un point, on va dire que ça me permet d'initialiser ma ligne, qu'importe également.
le truc c'est que j'ai N lignes et je voudrais éviter de me taper a chaque N fois les 4 lignes de l'initialisation. (idem pour le contenu du programme, ensuite...)
Donc je voudrais savoir s'il est possible de boucler sur l'indice d'un attribut ???
en gros est ce qu'il est possible de faire un truc du genre :
Code :
|
merci pour le coup de main
derniere chose, est ce que c'est possible de créer une ligne (j'utilise VB6) directement via le code ? sans la crééer "à la souris dans l'objet" ?
Marsh Posté le 29-02-2004 à 13:02:36
Code :
|
ça me sort une runtime error 91
mais qu'est ce quiva pas
Marsh Posté le 29-02-2004 à 13:14:39
ReplyMarsh Posté le 29-02-2004 à 13:26:39
que je fassse une Line ou une textbox c le meme probleme
par contre si je fais un integer ça marche bien...
Marsh Posté le 29-02-2004 à 13:57:25
zytrahus5 a écrit :
|
Quand tu fais "Dim Line1(100) As Line", tu définit un tableau de 100 éléments (par défaut, de 0 à 99) don quand tu fais "For i = 0 To 100", tu dépasse forcement de ton tableau.
Et puis tu ne fait jamais de new sur tes objets line, donc forcement ça merde.
le code correct serait:
Code :
|
Marsh Posté le 29-02-2004 à 14:04:44
merci pour ta réponse
j'avais essayé un truc du genre, surement avec la mauvaise syntaxe...
bref, j'ai essayé ton truc, et il me sort une erreur aussi
Marsh Posté le 29-02-2004 à 14:07:56
c'est pas une histoire d'initialisation du mode graphique. Sous net tu dois écrire un truc comme
dim g as graphics
dans le form_load
g= me.creategraphics() ' on crée un dessin dans la forme
g.line .....
Marsh Posté le 29-02-2004 à 14:14:19
bossamiral2 a écrit : c'est pas une histoire d'initialisation du mode graphique. Sous net tu dois écrire un truc comme |
bah j'arrive à créer une ligne "à la main" (a la souris) et lancer le programme et là elle apparait...
Marsh Posté le 29-02-2004 à 14:14:34
ReplyMarsh Posté le 29-02-2004 à 14:16:31
ReplyMarsh Posté le 29-02-2004 à 14:26:06
zytrahus5 a écrit : bah j'arrive à créer une ligne "à la main" (a la souris) et lancer le programme et là elle apparait... |
essaye d'utiliser les méthodes décrites dans ce topic:
http://forum.hardware.fr/hardwaref [...] -45486.htm
Marsh Posté le 29-02-2004 à 14:27:19
ReplyMarsh Posté le 29-02-2004 à 14:34:46
bon j'ai bien lu le truc c'est exactement ce que je veux faire, je dois certainement pas faire les choses en ordre parce que ça ne marche toujours pas
Code :
|
la "multiplication" de mon objet je dois la faire a quel moment ?
Marsh Posté le 29-02-2004 à 14:40:57
Le plus simple c'est de créer un ligne à la main et ensuite de la dupiquer via la commande "load line1(i)".
là tu as un peu tout mélangé, il ne faut pas faire de load après un me.controls.add et tu ne doit pas déclarer de tableau de ton objet graphique quand tu fait du chargement dynamique
Marsh Posté le 29-02-2004 à 14:59:19
bon je suis royallement paummé
quelle misere pourtant ça allait bien jusque là
alors, je créé une ligne a la main ?
elle s'appelle par défaut : "Line1"
comment la dupliquer ? parce que y a des histoires de (i) qui apparaissent, il transforme en tableau tout seul ?
Marsh Posté le 29-02-2004 à 15:08:12
Je reprends depuis le début:
-Tu crée ta ligne à la min
-Tu lui donnes un petit nom (dans mon exemple on l'appellera MaLigne)
-Tu met 0 dans la propriété 'Index' de MaLigne (dans la fenêtre propriétés). Là sans t'en rendre compte tu vien de créer une collection de controles.
-ensuite tu tape le code suivant:
Code :
|
EDIT: enfin dans ce cas précis, ton code ne sert pas à grand chose vu que tu va tracer 100 lignes superposées
Marsh Posté le 29-02-2004 à 15:18:34
merci pour ton aide, je regarde ça de suite.
oui a l'initialisation elles seront superposées, c'est dans une autre partie du programme (supposé tracer un graphe ) que je fais les mods
Marsh Posté le 29-02-2004 à 15:21:07
ReplyMarsh Posté le 29-02-2004 à 15:24:10
Tu veux dessiner quoi en fait ? parce que si c'est pour faire des graphique genres histogrames, camenbert, courbes etc... il y a le composant VB chart qui marche pas mal.
Marsh Posté le 29-02-2004 à 15:26:07
arf si j'avais su, j'en ai entendu parlé mais ça semblait bien compliquer
c'est pour tracer des courbes (simples segments de droites reliant des points)
Marsh Posté le 28-02-2004 à 12:47:36
voilà à quoi se résume mon probleme
Message édité par zytrahus5 le 29-02-2004 à 13:14:34
---------------
http://www.zytratech.com