fabiin
Messages postés329Date d'inscriptionmercredi 4 avril 2001StatutMembreDernière intervention 8 décembre 2009
-
8 mai 2002 à 09:58
fabiin
Messages postés329Date d'inscriptionmercredi 4 avril 2001StatutMembreDernière intervention 8 décembre 2009
-
8 mai 2002 à 10:32
salut,
voici mon prob:
j'utilise un thread
dans ce thread
dans ce thread je dessine sur un TBitmap
(jusque la pas de problème)
ensuite, je veu afficher mon tbitmap sur ma form
donc la je synchronize une procedure
et dans cette procedure j'ai
Form1.Canvas.Draw(0,0,TBitmap);
ca marche nikel
mais la ou ca me fai chier, c ka kan je déplace la souris sur la form, ben... le thread tourne encore, la fonction synchronize est encore appelé mais c comme si mon TBitmap n'était plus affiché sur la canvas de la form.
j'ai essayé ave le convas d'une paintbox, pareil..
leproblème vien donc de Canvas.Draw(0,0,TBitmap);
kelk'un saurai t'il comment remedier a ces problème :question)
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 8 mai 2002 à 10:07
Le problème ne vient pas directement de Canvas.Draw.
Tu dois verouiller le canvas, dessiner dessus puis déverrouiller. Ainsi, aucun autre process ne peut utiliser le canvas tant que le thread l'utilises.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 8 mai 2002 à 10:09
Suite :
Empêche d'autres threads d'utiliser le canevas.
procedure Lock;
Description
Appelez Lock dans une application multithread pour empêcher d'autres threads d'utiliser le canevas. Lock empêche l'exécution des autres threads coopératifs de l'application jusqu'à ce que la méthode Unlock soit appelée. Les appels imbriqués à Lock incrémentent la propriété LockCount afin que le canevas ne soit libéré que lorsque le dernier verrou est libéré.
Dans des applications multithread utilisant Lock pour protéger un canevas, tous les appels utilisant le canevas doivent être protégés par un appel à Lock. Tout thread ne verrouillant pas le canevas avant de l'utiliser introduire des problèmes potentiels.
Comme Lock empêche les autres threads de s'exécuter, elle peut avoir un effet négatif sur les performances. N'appelez Lock que s'il y a un risque qu'une autre thread interfère avec l'utilisation du canevas.