Implementación de un Canvas para modificar Objetos en Delphi parte VI

El problema que se plantea (como siempre!), es cómo dibujo ésta línea discontinua en el canvas???. La solución es bastante sencilla, ya que la propia API de windows nos permite crear nuestras pen personalizadas a la hora de dibujar.
Por lo tanto, podemos definir los saltos entre línea y la longitud de las líneas y pasarlas a la función ExtCreatePen para personalizar nuestro propio pen.
El resultado es el siguiente:
Luego, para crear la línea punteada, lo tenemos que hacer de la siguiente manera:
Aquí podréis descargar la última versión estable (beta) de ThundaxBoxManager v1.0.0 build 17. exe.
Por lo tanto, podemos definir los saltos entre línea y la longitud de las líneas y pasarlas a la función ExtCreatePen para personalizar nuestro propio pen.
El resultado es el siguiente:

var userPenStyle: array[1..2] of Dword = (8, 8); ///////////////////////////////////// hand : cardinal; LogBrush: TLogBrush; begin Image1.Canvas.Pen.Width := 1; Image1.Canvas.Pen.Color := color; Image1.Canvas.Brush.Style := bsSolid; LogBrush.lbStyle := BS_SOLID; logBrush.lbColor := Image1.Canvas.Pen.Color; hand := Image1.Canvas.Pen.Handle; Image1.Canvas.Pen.Handle := ExtCreatePen(PS_GEOMETRIC or PS_USERSTYLE, Image1.Canvas.Pen.Width, logBrush, Length(userPenStyle), @userPenStyle); //Dibujamos la línea Image1.Canvas.MoveTo(POrigen.x, POrigen.y); Image1.Canvas.LineTo(PDestino.x, PDestino.y); Image1.Canvas.Pen.Handle := hand; Image1.Canvas.Pen.Width := 1; Image1.Canvas.Pen.Color := color; Image1.Canvas.Brush.Style := bsSolid;
Aquí podréis descargar la última versión estable (beta) de ThundaxBoxManager v1.0.0 build 17. exe.
Comments
Post a Comment