Hola buen día a todos, espero me puedan ayudar con lo siguiente:
Tengo este panel
Delphi3.png 15,76KB
1 descargas
Y lo que me gustaría es encontrar el método para poder dibujar lo siguiente en este TImage:
Delphi.png 90,95KB
1 descargas
Las fotos obviamente son imagenes que descargue de la red pero en lo que concierne a las lineas se deben pintar al dar Click en una area especifica del TImage en color naranja con un grosor de 6 pixeles, y lo mismo para la líneas negras. y quisiera ver la posibilidad de que fueran líneas rectas.
En cuanto a las imagenes deben también aparecer en el punto donde de click en el TImage y debejen poder rotar a un angulo que el usuario desee con un Edit
La malla como referencia tiene 20 pixeles (por lo que todo es a esa escala en teoría).
De momento quería implementar lo siguiente pero no se muy bien como:
type TForm1 = class(TForm) ScrollBar1: TScrollBar; ScrollBar2: TScrollBar; Image1: TImage; Label1: TLabel; procedure Image1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type Tlinea = packed record // Es un registro x1 : integer; //Uso de base de datos y1 : integer; x2 : integer; y2 : integer; end; type Tfigura = packed record // Es un registro x1 : integer; //Esquina superior izq de la figura y1 : integer; angulo : integer; nTubo : integer; end; var Form1: TForm1; Tubo : Array [1..100] of Tlinea; Casa : Array[1..50] of Tfigura; nTubo : Integer; nCasa : Integer; implementation {$R *.dfm} procedure TForm1.Image1Click(Sender: TObject); var K,I: Integer; begin Image1.Canvas.Pen.Color := RGB(147,212,255); for I := 1 to 100 do begin image1.canvas.moveto(0,i*20); image1.canvas.Lineto(2000,i*20); Image1.canvas.MoveTo(i*20,0); Image1.canvas.LineTo(i*20,2000); end; nTubo:=0; nCasa:=0; end;
Espero me puedan apollar