Bonjour
J'essaie d'appeler l'api PolyBezier (http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx) déclarée dans l'unité Windows.pas comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
{$EXTERNALSYM PolyBezier}
function PolyBezier(DC: HDC; const Points; Count: DWORD): BOOL; stdcall;
Dans mon code je procède comme suit:
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
 
var
...
    J:Integer;
    BitmapHDC: L_HDC;//Handle du bitmap sur lequel je vais dessiner
    APointsList: array of TPoint;//Tableaux dynamique des sommets de mon bezier
    ANbPoints: Integer;//Nombre de points de mon bezier
begin
        //Initialisation de la taille du tableau de points
        ANbPoints := AContour.Count;
        SetLength(APointsList, ANbPoints);
        for J := 0 to ANbPoint - 1 do begin
            ...Divers calculs de changement de repère....
            APointsList[J].X := AImagePoint2.X;
            APointsList[J].Y := AImagePoint2.Y;
        end;
        PolyBezier(BitmapHDC, APointsList, ANbPoints);
end;
Malheureusement ça n'a pas l'air de marcher: les lignes affichées ne correspondent pas à ce que j'attends. Le calcul de coordonnées de AImagePoint2 est bon.
Ou se trouve mon erreur?
Merci de votre aide.