BESOIN AIDE SUR LES THREAD

Signaler
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
-
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/54369-besoin-aide-sur-les-thread

Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

j'ai mis en ligne la version qui marche.
En fait, il y avait, il me semble, un problème entre Timage qui est un composant non fenêtre (sans hwnd), son canvas et les threads.

Merci à tous...
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

Bon, j'ai trouvé une piste :

dans ma fonction de tracé, je laisse tomber les sections critiques, j'encadre les tracés d'un lock/unlock.
Puis, j'envoie un message à la fenêtre pour rafraichir le timage (et le reste).

procedure TFMain.FunctionCall(...
[...]
begin
Env:=TEnvironnement(sender);

image1.Canvas.lock;

case index of
[...]
end;
image1.Canvas.Unlock;
sendmessage(fmain.Handle,WM_PAINT,0,0);
end;

Je teste encore des choses pour voir...
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

@Manchester : oui, mon canvas existe. j'ai essayé de dessiner directement dans le canvas de l'écran avec getdc(0) et bitblt, idem.

@IA93 : la modif ne marche pas chez moi...
Par contre, avec un sleep(10) au début de ma fonction de dessin, le tracé est long mais ça marche mieux...
Le tracé ne s'effectue pas dans le bitmap de image1, mais il apparait au moins à l'écran...

Je continue de chercher une explication...
Messages postés
374
Date d'inscription
vendredi 20 octobre 2000
Statut
Modérateur
Dernière intervention
15 janvier 2021

Barbichette

tu a tester

un if assigned(montruc.canvas) then
faitceci
else
signale_une_grosse_erreur; ?

Bon Coding...

ManChesTer.
Afficher les 12 commentaires