Accueil > Forum > > > > appel de fonction Paint
appel de fonction Paint
lundi 19 mai 2008 à 12:02:18 |
appel de fonction Paint

dod0
|
bonjour, je suis débutant en C# et j'essai de créé une cible qui suit mon curseur j'y arrive très bien le probléme est que ma méthode demande trop au processeur donc j'aimerais savoir comment faire pour résoudre sa et est-ce que c'est mon programme qui est pas bon? car j'ai pensé appeler ma fonction panel3_Paint dans ma fonction panel1_MouseMouve ?
voilà mon code ...
Point Depart = newPoint(); Pen pen = newPen(Color.Black); private void panel1_MouseMove( object sender, MouseEventArgs e) { Panel p = sender as Panel ; if (e.Button == MouseButtons .Left) { Point mousePos = this .PointToClient( Control .MousePosition); if (Depart.IsEmpty) { Depart = new Point (mousePos.X - p.Left, mousePos.Y - p.Top); } p.Location = new Point (mousePos.X - Depart.X, mousePos.Y - Depart.Y); } else if (!Depart.IsEmpty) Depart = new Point (); } //********************** création de la cible pour le curseur *************************// public void panel3_Paint( object sender, PaintEventArgs e) { Panel p = sender as Panel ; Point mousePos = this .PointToClient( Control .MousePosition); e.Graphics.DrawLine(pen, 0, mousePos.Y - p.Top, 1000, mousePos.Y - p.Top); e.Graphics.DrawLine(pen, (mousePos.X - p.Left), 0, mousePos.X - p.Left, 1000); //this.Refresh(); utilise trop de m,moire } }
|
|
lundi 19 mai 2008 à 14:16:51 |
Re : appel de fonction Paint

leprov
|
déjà tu redessine a chaque fois tes lignes. pourquoi ne pas prédessiner ta "cible" dans le constructeur, et simplement la flusher dans le mousemove. tu devrais déjà gagner un peu. ensuite, au lieu de refresh this, tu peux refresh uniquement la partie qui a besoin d'être refresh (ca doit etre possible avec un appel a invalidate je pense, il me semble qu'on peut choisir un rectangle cible). ainsi tu as juste a invalider la position de lancienne cible, puis a faire ton dessin. Et au lieu d'appeler la méthode paint dans le mousemove, tu dois faire le invalidate la bas. ainsi, tu override la méthode onpaint ou tu place ton code, puis tu invalide la zone qui a besoin detre repainte dans le mousemove. Au final tu ne dessine pas a chaque fois mais tu "flush" une image déjà initialisée.
|
|
lundi 19 mai 2008 à 14:25:43 |
Re : appel de fonction Paint

dod0
|
Merci de ton aide  sa m'éclaire un peu, je vais essayer d'appliquer sa malgrès que pour moi certaine chose que tu m'explique me sont inconnu comme le invalidate que je ne comprends pas tout à fait :s
|
|
mardi 20 mai 2008 à 09:22:36 |
Re : appel de fonction Paint

leprov
|
Invalidate te permet de dire à l'application "telle partie de ma fenetre n'est plus valide et doit etre redessinée". cest assez proche de ton refresh, sauf que ca va te permettre de travailler uniquement sur les portion nécessaires de ton formulaire. autrement dis, au lieu de redessiner toute la fenetre, tu redessine uniquement la portion qui n'est plus valide (celle ou il y avait ta cible et ou il ne doit plus rien y avoir)
|
|
mardi 20 mai 2008 à 10:02:15 |
Re : appel de fonction Paint

dod0
|
d'accord je vois mieux comment l'utiliser maintenant merci beaucoup de ton aide car je galère un peu en C# vu que mon language de départ est le PASCAL. Et la j'ai quelques problémes pour le constructeur pour la création de ma cible car je vois exactement comment créer tous cela mais pas comment faire le "flush" comme tu me l'a indiqué?  désolé je débute réellement donc je préfére passer pour un vrai novice que rester bloqué
|
|
mardi 20 mai 2008 à 10:59:02 |
Re : appel de fonction Paint

leprov
|
tu dois créer une image en temps que données membre de ta classe. dans ton constructeur tu dessine la cible dans ton image avec un fond transparent. Par contre je suis en train de réaliser : pourquoi ne pas simplement changer le curseur lorsque tu es sur ce formulaire (tout simplement?)
|
|
mardi 20 mai 2008 à 11:22:35 |
Re : appel de fonction Paint

dod0
|
ok merci pour l'explication et pour ce que tu pensais quand tu dis "changer le curseur lorsque tu es sur ce formulaire" tu parle de faire par exemple :
Cursor.Current = Cursors.Cross; ou autre ???
|
|
mardi 20 mai 2008 à 11:35:34 |
Re : appel de fonction Paint

leprov
|
oui, mais plutot (vu que tu veux un truc perso) utiliser une image a toi
|
|
mardi 20 mai 2008 à 11:48:17 |
Re : appel de fonction Paint

dod0
|
ouais j'y avais pensé mais tu vois mon probleme c'est comment faire pour l'appeler avec cette méthode car l'objet cible par exemple, je n'arrive pas à le créé et l'appeler, je suis pomé car je pense que je me base trop sur ce que j'ai vu avec Delphi, car en delphi j'aurai créé un nouveau composant que j'aurai appelé dans ma fonction principal dois-je faire pareil ici? et si je suis ton résonnement je dois créé ma cible dans le constructeur et après appeler le changement de curseur dans mon Mouse Mouve de mon Panel? Merci de ta patiente en tout cas car c'est plutot rare sur certains forum
|
|
mardi 20 mai 2008 à 11:53:46 |
Re : appel de fonction Paint

leprov
|
Réponse acceptée !
non, en fait il te suffit de créer ta cible dans ton constructeur, puis lorsque tu affecte la cible au curseur du controle concerné (toujours dans le contructeur). si cest pour lensemble de ton formulaire que tu veux ce changer, tu as juste faire this.Cursor = TonCurseur;
|
|
Cette discussion est classée dans : fonction, paint, depart, pen, mousepos
Répondre à ce message
Sujets en rapport avec ce message
Fonction... [ par Acidkepler ]
Bonjour, j'ai créer une fonction bonhomme...Quand je clique sur le bouton avancer, mon bonhomme doit avancer ver la droite... mais je n'arrive pas
Comment integrer une librairie a mon programme ??? [ par aachatam ]
Salut tt le monde, En cherchant une fonction qui peut remplire une zone delimité dans une image bmp, ( l'equivalent de la fonction de remplissage de
Comment stopper un thread lorsqu'il est bloqué par une fonction bloquante [ par billou_13 ]
En voila une question que je me pose depuis très longtemps !En fait, je lance un serveur TCP/IP qui attend des clients en faisant la fonction Socket.A
fonction MID [ par chris81 ]
bonjour, je suis en train de tester C# et je ne trouve pas la fonction MID qui exiqte en VB. Pourriez vous mle dire ou est cette fonction ou sinon par
Atteindre ligne dans une RichTxtBox [ par tahiti_bob ]
Bonjour,Je suis en train de développer un bloc note un peu comme celui de Window mais avec plein de fonctions supplémentaire (MDI,...)Je voudrais impl
Chaine de caractères [ par tahiti_bob ]
Bonjour,Je cherche une fonction qui permet de savoir si la chaine de caractère contient par exemple "Error at". C'est l'équivalent de la fonction ereg
mail avec piece jointe [ par marliche0 ]
Bonjour, je cherche une fonction qui me permet d'envoyer un mail avec des pieces jointes, cette fonction existe-t-elle en c# ou faut-il la developper?
Graphics.... [ par emmanuel9 ]
Bonjour, En faite j'ai un panel avec un diagramme en batons dedans. Quand on fait scroller le panel ca scrolle bien les diagrammes à l'interieur, l
Numéro de série du volume [ par ]
Bonjour,Je cherche une fonction qui me donnerai le numéro de série du volume d'un Disque Dure. Sur le MS-DOS, la fonction est : C:\>vol Merci d’avance
[C#] Utilisation de paramètres réels dans une fonction [ par nerix27 ]
Bonjour,voilà mon p'tit pb...En fait j'ai une appli de plusieurs milliers de lignes, et mon pc n'est pas trop une bête de course, donc ça rame à fond
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYSTECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYS par ROMELARD Fabrice
Speakers : Lionel Limozin et Alain Marty La session commence par une découverte de SharePoint à travers la mise en place d'un environnement SharePoint pour la gestion des Sessions animées par BeWise. Le besoin est très ba...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|