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 :
Dans mon code je procède comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 {$EXTERNALSYM PolyBezier} function PolyBezier(DC: HDC; const Points; Count: DWORD): BOOL; stdcall;
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.
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;
Ou se trouve mon erreur?
Merci de votre aide.
Partager