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)

mercredi 8 mai 2002 à 09:58:44 | Problème avec Canvas.draw

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

mercredi 8 mai 2002 à 10:07:45 | Re : Problème avec Canvas.draw

Delphiprog

Administrateur CodeS-SourceS
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

mercredi 8 mai 2002 à 10:09:28 | Re : Problème avec Canvas.draw

Delphiprog

Administrateur CodeS-SourceS
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


mercredi 8 mai 2002 à 10:19:21 | Re : Problème avec Canvas.draw

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



mercredi 8 mai 2002 à 10:32:09 | Re : Problème avec Canvas.draw

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






Cette discussion est classé dans : problème, thread, draw, canvas, tbitmap


Répondre à ce message

Sujets en rapport avec ce message

Gros problème de dessin [ par titidebute ] Je voudrais dessiner sur le canvas d'un TLabel mais qui a déjà une couleur de fond (je vais m'expliquer)...monlabel (créer dynamiquement) -> monlabel. Frame et thread [ par stailer ] Salut tout le monde !J'ai un problème avec les threads et j'aurai besoin d'une explication :Si je lance un thread avec une fonction sur une fiche il y Problème agrandissement du canvas d'une TImage [ par Zitoune34 ] BjrJe dessine sur le canvas d'un TImage. Le probleme c'est que la taille du canvas dépend de la taille du TImage à la création, du coup lorsque je red OpenGL et Threads [ par FleX2009 ] Bonjour à tous, voilà j'ai un petit problème : je veux dessiner en OpenGL dans un thread, mon algo est du type : Boucle Dessin Fin boucle // jusque i Taille de texte différentes selon canvas ou tBitmap [ par nitrique ] Bonjour à tous,Je me suis construit un espece d'aperçu avant impression sur un tBitmap (de même taille que le résultat final sur l'imprimante: 1 pixel Problème de thread avec un idhttp (indy 10) [ par ACHPI32 ] Hello,J'essaye de faire un petit téléchargeur avec le composant tidhttp. Tout fonctionne sauf... l'interruption en cours de téléchargement. En fait je Existe-t-il une methode plus rapide que draw... [ par balgrim ] Existe-t-il une methode plus rapide que draw pour ecrire sur un canvas. En fait, j'ai un bmp, et un canvas et j'aimerais pouvoir tres rapidement envoe probleme sur la procédure tbitmap.canvas.textout [ par dvarrel ] cette proc ne fonctionne pas si mon bitmap est plus large que la résolution de l'écran,par contre les autres proc de dessin fonctionne.Alors comment f Problème création thread [ par VolaiL ] Bonjour, j'ai un petit problème de création de thread.Je souhaiterai lancer le thread lorsqu'on appuie sur enter, mais ca bloque dès la crétion sur "i Problème à la mise en place d'un thread [ par John Dogget ] Salut à tous.J'utilise une fonction qui récupère l'adresse IP d'un ordinateur à partir d'un site web. Comme cette fonction est dépendante du réseau, s


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.