cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 2010
-
24 mars 2005 à 10:22
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
24 mars 2005 à 17:08
Bonjour,
Un truc que j'ai pas pigé c'est que je dessine un objet graphics, il se dessine seulement si je le met dans l'evenement click d'un bouton ou autre. Si je le met dans Form1_Load il se dessine point.
Et en plus quand je deplace mon objet Graphics et que je le fais glisser en dehors de la zone d ecran, quand je le fais revenir il a tendance à s'effacer.
Quelqun aurait t'il une solution pour ces problèmes ?
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 24 mars 2005 à 10:34
Au moment où l'event Load est déclenché, le Form n'est pas encore affiché, donc tu dessines "dans le vide".
Et quand tu fait passer une autre fenetre au dessus de la tienne (ou que tu fait sortir la tienne de l'ecran), tu dois redessiner.
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 24 mars 2005 à 12:04
merci coq, je dois dire que j'ai regler pas mal de problème grâce à toi, 1906 messages c'est sport quand même.
Si je dessine un cercle dans un panel il ne s'affichera par sur l'evenement form_load. Mais comment en faite forcer mon dessin à se redessiner ? en appellant la fonction dessine_dessin() à chaque fois que ma form bouge ?
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 24 mars 2005 à 12:13
Sert toi plutôt de l'event Paint.
Et je te conseille de mettre en place un système de buffer : tu dessines tout tes cercles etc sur un Bitmap de la taille de ton Panel et ensuite tu dessines le Bitmap sur le Panel (Graphics.DrawImageUnscaled), ça évitera notamment l'effet de scintillement si tu as beaucoup d'éléments à dessiner.
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 24 mars 2005 à 12:19
ok merci je vais essayer ça et une dernière petite question. Si je peux pas afficher mon dessin sur form1_load à quel moment je l'affiche si je veux qu'il s'affiche au demarrage de la form etant donné qu'il se passe rien après form_load comme evenement ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 24 mars 2005 à 12:25
Maintenant tu vas te servir de l'event Paint du Panel, donc la première fois que celui ci est affiché l'event est déclenché, et donc ton code d'affichage sera appelé :-)
malheureusement les lignes que j'ai dessiné ne s'affiche pas, pourtant l'evenement panel_pain se declenche bien j'ai testé, je dois avoir une erreur qq part mais je vois où...
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 24 mars 2005 à 13:59
Oui je sais qu'il n'y a pas de méthode CreateGraphics sur la classe Bitmap (celle des contrôles est héritée de la classe Control, dont n'hérite évidemment pas Graphics)
Par contre dans l'exemple plus haut j'ai parler de la méthode Graphics.FromImage.
Athalus
Messages postés131Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 7 juillet 2005 24 mars 2005 à 14:03
J'ai réalisé une dll qui permet de tracer des tableaux de points dans un graphique avec calcul des échelles et tracage du graphique + titre graphique et echelles mais elle est pas tout à fait au point je la metterais sur le site surement dans la journée si ca peut t'intéresser...
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 24 mars 2005 à 14:10
merci athalus,
en faite le truc que je comprends point, c'est que je fais dans form_load
b =
new Bitmap(623, 502);
Graphics * pg = Graphics::FromImage(b) ;
donc mon graphics qui s'appelle pg est égal au bitmap. mais quand je dessine je fais pg->drawline() et pas b->drawline() . donc mon graphics pg est vide. Je dessine sur le graphics est pas sur le bitmap.
Athalus
Messages postés131Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 7 juillet 2005 24 mars 2005 à 14:56
En fait moi je dessine sur un bmp car je trace des tableaux ayant desfois plus de 300 000 points du coup si je redessine à chaque evenement Paint ca prend 3 plomb ... utiliser le bmp te permet de ne pas avoir à redessiner tout le temps...
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 24 mars 2005 à 14:59
oui, mais par la suite je voudrais dessiner des camberts avec les parts qui se detache etc... alors je sais pas trop si les bmp conviendrais pour faire ca