begin process at 2012 02 11 07:53:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Graphique

 > 

Problème avec Canvas.draw


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec Canvas.draw

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ée 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

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales