Bonjour,
Je viens de tomber sur un pb bizarre avec XE2.
Dans cette function de l'unité GR32_image de la GR32 (qui fonctionne avec D2010) :
Bien que passant correctement dans la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function TCustomImage32.GetBitmapRect: TRect; var Size: TSize; begin if Bitmap.Empty then with Result do begin Left := 0; Right := 0; Top := 0; Bottom := 0; end else begin Size := GetBitmapSize; with Size do begin Result := Rect(0, 0, Cx, Cy); if BitmapAlign = baCenter then begin OffsetRect(Result,(Width - Cx) div 2,(Height - Cy) div 2) end else if BitmapAlign = baCustom then OffsetRect(Result, Round(OffsetHorz), Round(OffsetVert)); end; end; end;
le résultat était anormal. En faisant du pas à pas dans la fonction il apparait que le résultat de (Width - Cx) div 2 ou de (Height - Cy) div 2 est toujours égal à 0, ce qui est pour le moins étrange car il aurait du être de l'ordre de 40 et 50, les variables ayant les bonnes valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part OffsetRect(Result,(Width - Cx) div 2,(Height - Cy) div 2)
La seule solution que j'ai trouvé, c'est de remplacer la ligne en question par :
Y a-t-il un gros truc que je vois pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part OffsetRect(Result,(Self.Width - Cx) div 2,(Self.Height - Cy) div 2)
Partager