Bonjour à tous,
'Delphi7, version Education Professionnelle sur Windows 7)
Dans une même application, dans une première procédure j'utilise la fonction
Scanline ainsi :
et tout se passe bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Var P:PByteArray; X,Y:Integer; Begin For Y:= bitmap1.height downto bitmap1.height-300 do begin P:=PByteArray(bitmap1.scanline[Y]); for x:=2 to bitmap1.Width-2800 do begin P[X]:=Y; ....... .......
de suite après, j'utilise à la suite une seconde procédure avec la même construction :
et je reçois le message d'erreur "exception ERangeError avec le message Erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Var P:PByteArray; X,Y:Integer; begin DivMod(bitmap1.width,2,resultat,reste); X:=resultat; for Y:=bitmap1.height downto bitmap1.height-250 do begin P:=PByteArray(bitmap1.scanline[Y]); P[X]:=Y; ....... .......
vérification d'étendue".
Je peux supposer que je manque de mémoire mon bitmap1 comportant 3292 X 2172
pixels.
Comment résoudre ce problème ? je ne sais pas initialiser ce Pointeur P entre chaque
procedure; Il devrait l'être par le lancement de la nouvelle ?
Merci à vous de me guider.
Partager