2012-04-03 26 views

Respuesta

15

Utilice la función TCanvas.Polygon. Declare una matriz de TPoint, establezca su longitud en el recuento de sus puntos, especifique las coordenadas de cada punto (opcionalmente modifique el lienzo y/o el pincel) y pase esta matriz a la función TCanvas.Polygon. Como en este ejemplo aburrido:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Points: array of TPoint; 
begin 
    SetLength(Points, 3); 
    Points[0] := Point(5, 5); 
    Points[1] := Point(55, 5); 
    Points[2] := Point(30, 30); 
    Canvas.Pen.Width := 2; 
    Canvas.Pen.Color := clRed; 
    Canvas.Brush.Color := clYellow; 
    Canvas.Polygon(Points); 
end; 

es como parece a continuación:

enter image description here

11

Como complemento a la excelente respuesta de Tlama, este es un caso en el que se puede obtener la sintaxis muy conveniente por procedimiento abierto construccion de matriz Considere la función auxiliar

procedure DrawPolygon(Canvas: TCanvas; const Points: array of integer); 
var 
    arr: array of TPoint; 
    i: Integer; 
begin 
    SetLength(arr, Length(Points) div 2); 
    for i := 0 to High(arr) do 
    arr[i] := Point(Points[2*i], Points[2*i+1]); 
    Canvas.Polygon(arr); 
end; 

definidos e implementados de una vez por todas. Ahora puede hacer simplemente

Canvas.Pen.Width := 2; 
Canvas.Pen.Color := clRed; 
Canvas.Brush.Color := clYellow; 
DrawPolygon(Canvas, [5, 5, 55, 5, 30, 30]); 

para dibujar la misma figura que en el ejemplo de TLama.

+0

Estaría contento con esta respuesta siendo la aceptada. Ser el primero no es lo más importante. Ser el mejor es! –

+4

Ojalá pudiera aceptar los 3. Todos ustedes me ayudaron. Gracias. –

10

Como complemento a la respuesta de ambos Tlama y Andreas, aquí hay otra alternativa:

procedure TForm1.Button1Click(Sender: TObject); 
begin 
    Canvas.Pen.Color := clRed; 
    Canvas.Brush.Color := clYellow; 
    Self.Canvas.Polygon([Point(5,5), Point(55,5), Point(30,30)]); 
end; 

Utilizando antena abierta construir y registro de puntos.

Cuestiones relacionadas