fbalien
Messages postés251Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention11 novembre 2016
-
7 mai 2007 à 08:49
fbalien
Messages postés251Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention11 novembre 2016
-
9 mai 2007 à 08:31
Bonjour
J'ai des soucis avec l'API Bilblt je l'utilise pour faire des captures d'écrans
J'ai au bout d'un moment une erreur "Espace insuffisant pour traiter cette
commande"
procedure tthrCapture.Execute;
begin
repeat
if not captureok then
begin
varcapture.getCapture ;
captureok := true;
end;
sleep(30);
until finok ;
end;
Cela se produit apres la premiere capture quand le PixelFormat est defini sur pf8bit dans ma classe tcapture
si je le defini en PF32bit là le plantage arrive moins souvent
si vous avez une idée je suis preneur
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 7 mai 2007 à 17:00
Salut,
Tu as essayé de vérrouiller le canvas avant de dessiner dedans ? Essaye avec imageCapture.Canvas.Lock avant l'appel à BitBlt() et imageCapture.Canvas.Unlock après.
En fait, il faut faire ça, à CHAQUE utilisation du canvas si tu as une application multi-thread, ça explique peut etre le problème...
Par contre, tu es sur que ça ne vient pas du code que tu as *nottoyé* avant de poster ?
Ou sinon, tu pourrais nous dire la ligne exacte de l'erreur ?
fbalien
Messages postés251Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention11 novembre 2016 7 mai 2007 à 18:05
pour le *nottoyé* j'ai juste viré les commentaires
la ligne qui plante c'est
BitBlt(imageCapture.Canvas.Handle,0,0,Width,Height,Dc,x,y,SRCCOPY);
apres d'autres tests
j'ais fait ceci
try
BitBlt(imageCapture.Canvas.Handle,0,0,Width,Height,Dc,x,y,SRCCOPY);
except
on e:exception do
imageCapture.canvas.TextOut(10,10,e.message);
end;
j'ai l'erreur sur la ligne Bitblt et aussi sur imageCapture.canvas.TextOut(10,10,e.message);
je vais donc tenter le canvas.lock
fbalien
Messages postés251Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention11 novembre 2016 9 mai 2007 à 08:31
Merci Florenth
Avec canvas.lock çà marche nikel
le tous maintenant c'est de bien gérer les lock et unlock car apparemment çà fige le programme s'il y en a un de plus donc petite boucle sur lockcount et çà roule