begin process at 2008 07 21 00:06:09
1 213 530 membres
431 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème avec Canvas.draw [ Archives / Graphique ] (fabiin)

Problème avec Canvas.draw le 08/05/2002 09:58:44

fabiin
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

Merci par avance

@+
Fabs

Re : Problème avec Canvas.draw le 08/05/2002 10:07:45

Delphiprog
(Admin CS)
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.

May Delphi be with you.


-------------------------------
Réponse au message :
-------------------------------

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

Merci par avance

@+
Fabs

Re : Problème avec Canvas.draw le 08/05/2002 10:09:28

Delphiprog
(Admin CS)
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.

CQFD.
May Delphi be with you.


-------------------------------
Réponse au message :
-------------------------------

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.

May Delphi be with you.


-------------------------------
Réponse au message :
-------------------------------

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

Merci par avance

@+
Fabs


Re : Problème avec Canvas.draw le 08/05/2002 10:19:21

fabiin
tu veux dire
Canvas.Lock ???
pke si c ca bah ca marche po :(

@+
Fabs


-------------------------------
Réponse au message :
-------------------------------

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.

CQFD.
May Delphi be with you.


-------------------------------
Réponse au message :
-------------------------------

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.

May Delphi be with you.


-------------------------------
Réponse au message :
-------------------------------

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

Merci par avance

@+
Fabs



Re : Problème avec Canvas.draw le 08/05/2002 10:32:09

fabiin
arf si c bon ca marche :-D
j'avais mal fais !!!
Merci bcp !!!

@+
Fabs


-------------------------------
Réponse au message :
-------------------------------

tu veux dire
Canvas.Lock ???
pke si c ca bah ca marche po :(

@+
Fabs


-------------------------------
Réponse au message :
-------------------------------

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.

CQFD.
May Delphi be with you.


-------------------------------
Réponse au message :
-------------------------------

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.

May Delphi be with you.


-------------------------------
Réponse au message :
-------------------------------

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

Merci par avance

@+
Fabs





Classé sous : problème, thread, draw, canvas, tbitmap

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

Snippets en rapport

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS