TBitmap.Canvas.CopyRect : bugs connus ?! [VCL] - Delphi/Pascal - Programmation
Marsh Posté le 18-02-2003 à 17:59:26
procedure TCanvas.CopyRect(const Dest: TRect; Canvas: TCanvas; |
voici le code de CopyRect il emballe l'appel à l'api windows en s'assurant que les handle sur les objets graphiques sont valides, donc si ça marche pas c peut-etre qu'a ce moment ils sont pas bon, regarde en utilisant directement l'api...
Marsh Posté le 25-02-2003 à 16:05:41
bon, déjà, c'est pas le RequiredState, puisque ça me renverrerais une exception et ce n'est pas le cas .
Sinon, en lisant la doc, j'ai vu que BitBlt était plus adapté à mes besoin que StretchBlt (surface dest et source de taille identique). J'utilise donc cette fonction directement.
Mais j'ai toujours le même pb : BitBlt n'échoue jamais (renvoie toujours true) mais la surface n'est pas toujours copiée...
Dans une autre partie de l'application, j'utilise TransparentBilt (pour supprimer une couleur sur un bitmap) et j'ai exactement le même problème et ce une fois sur 20 a peu près...
bon, je vais encore chercher mais si vous avez une idée, n'hésitez surtout pas !
Marsh Posté le 28-09-2007 à 11:22:16
Je relance cette discution car j'ai actuellement le même problème.
Y a-t-il une solution?
Marsh Posté le 18-02-2003 à 17:52:28
bonjour !
j'utilise cette fonction assez souvent dans mon prog et il arrive à peu près une fois sur 50 que le copy rect ne copie rien du tout....
pour vous situer un peu la chose, ouala à quoi ressemble mon ti code :
j'ai vérifié que bmpList.Items contenait bien des bitmap "valide" et c'est bel est bien le cas. Il n'y a aucun doute, c'est CopyRect qui foire... vs avez déjà vu ça ??!!
notez que ce phénomène arrive bp plus souvent sur winXP, un petit peu moins sous Win2K et quasiment jamais sous win98...