Section courante

A propos

Section administrative du site

ARC

Arc
Turbo Pascal pour Windows WINPROCS

Syntaxe

Function Arc(DC: HDC; X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer): Bool;

Paramètres

Nom Description
DC Ce paramètre permet d'indiquer l'identificateur de la périphérique de contexte.
X1 Ce paramètre permet d'indiquer la coordonnée de gauche de la zone rectangulaire.
Y1 Ce paramètre permet d'indiquer la coordonnée supérieur de la zone rectangulaire.
X2 Ce paramètre permet d'indiquer la coordonnée de droite de la zone rectangulaire.
Y2 Ce paramètre permet d'indiquer la coordonnée inférieur de la zone rectangulaire.
X3 Ce paramètre permet la coordonnée horizontal de départ du rayon.
Y3 Ce paramètre permet la coordonnée vertical de départ du rayon.
X4 Ce paramètre permet la coordonnée horizontal de fin du rayon.
Y4 Ce paramètre permet la coordonnée vertical de fin du rayon.

Description

Cette fonction permet de dessiner l'arc d'une ellipse.

Exemple

Voici un exemple de générer les 100 en arc dans le quatrième cadran :

  1. Program ArcSamples;
  2.  
  3. Uses WinProcs, WinTypes;
  4.  
  5. Const
  6.  CrtWindow: HWnd = 0;
  7.  
  8. Var
  9.  PS: TPaintStruct;
  10.  Message: TMsg;
  11.  
  12. Function CrtWinProc(Window: HWnd; Message, WParam: Word; LParam: LongInt): LongInt;Export;
  13. Var
  14.  I:Integer;
  15.  DC:HDC;
  16.  CurrColor:HPEN;
  17. Begin
  18.  CrtWinProc := 0;
  19.  CrtWindow := Window;
  20.  Case Message of
  21.   wm_Paint:Begin
  22.    DC := BeginPaint(Window, PS);
  23.    For I := 1 to 100 do Begin
  24.     CurrColor:=CreatePen(PS_SOLID, 1, RGB(Random(255),Random(255),Random(255)));
  25.     SelectObject(DC,CurrColor);
  26.     Arc(DC,-300,-300,I*3,I*3,0,0,0,0);
  27.    End;
  28.    EndPaint(Window, PS);
  29.   End;
  30.   wm_Destroy: PostQuitMessage(0);
  31.   Else CrtWinProc := DefWindowProc(Window, Message, WParam, LParam);
  32.  End;
  33. End;
  34.  
  35. Const
  36.  CrtClass: TWndClass = (
  37.   style: cs_HRedraw + cs_VRedraw;
  38.   lpfnWndProc: @CrtWinProc;
  39.   cbClsExtra: 0;
  40.   cbWndExtra: 0;
  41.   hInstance: 0;
  42.   hIcon: 0;
  43.   hCursor: 0;
  44.   hbrBackground: 0;
  45.   lpszMenuName: NIL;
  46.   lpszClassName: 'TPWDraw'
  47.  );
  48.  
  49. BEGIN
  50.  If HPrevInst = 0 Then Begin
  51.   CrtClass.hInstance := HInstance;
  52.   CrtClass.hIcon := LoadIcon(0, idi_Application);
  53.   CrtClass.hCursor := LoadCursor(0, idc_Arrow);
  54.   CrtClass.hbrBackground := color_Window + 1;
  55.   RegisterClass(CrtClass);
  56.  End;
  57.  CrtWindow := CreateWindow(
  58.   CrtClass.lpszClassName,
  59.   'Dessin Arc',
  60.   ws_OverlappedWindow + ws_HScroll + ws_VScroll,
  61.   cw_UseDefault, cw_UseDefault,
  62.   cw_UseDefault, cw_UseDefault,
  63.   0,0,
  64.   HInstance,
  65.   NIL
  66.  );
  67.  ShowWindow(CrtWindow, CmdShow);
  68.  UpdateWindow(CrtWindow);
  69.  While GetMessage(Message, 0, 0, 0) do Begin
  70.   TranslateMessage(Message);
  71.   DispatchMessage(Message);
  72.  End;
  73. END.

on obtiendra le résultat semblable au suivant :

Voir également

Langage de programmation - Turbo Pascal pour Windows - Référence de procédures et fonctions - CHORD
Langage de programmation - Turbo Pascal pour Windows - Référence de procédures et fonctions - ELLIPSE
Langage de programmation - C pour OS/2 - Support de Windows 3.1 - Arc

Dernière mise à jour : Dimanche, le 10 décembre 2017