BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN. PRACTICA # 3 GRAFICADO DE PIXEL Y LINEAS CON DELPHI PARA EL CURSO DE GRAFICACION M. C. Graciano Cruz Almanza OBJETIVO: El alumno comprenderá la estructura de una aplicación gráfica desarrollada en Delphi y la aplicará en el pintado de líneas rectas usando un Form, Label, Button, Image y Edit. Se pintaran dos tipos de líneas, la primera basada en Pixel y la segunda en LineTo. ACTIVIDADES: 1. Crear una Forma VCL. 2. Asociar el código de inicialización de la Forma. 3. Incluir una región para imágenes Imagen (TImage). 4. Incluir un Panel. 5. Incluir en el panel, un botón para pintar la recta por pixeles. 6. Asociar el código para pintar una “recta fija” por pixeles. 7. Incluir un botón para pintar la línea usando LineTo ( P a Q). 8. Asociar el código al botón anterior para pintar una línea. 9. Incluir cuatro editores (TEdit) en el panel, para capturar los datos de la recta. 10. Asociar Código a cada “editor” para la captura de datos x1, y1, x2, y2. 11. Incluir cuatro etiquetas (Tlabel) para identificar las variables de la recta. 12. Incluir un botón para limpiar la zona de trabajo. 13. Incluir un botón para terminar (close). 14. Fin. CODIGO var Form2: TForm2; x1, y1, x2, y2 : integer ; implementation {$R *.dfm} // Pinta linea procedure TForm2.Button1Click(Sender: TObject); begin Image1.Canvas.MoveTo(x1, y1); Image1.Canvas.LineTo(x2, y2); end; // Limpia area de trabajo procedure TForm2.Button2Click(Sender: TObject); var aux : integer; begin aux := Image1.Canvas.Pen.Width ; // salva ancho Image1.Canvas.Pen.Width := 1 ; Image1.Canvas.Rectangle(0,0, 505, 305); Image1.Canvas.Pen.Width := aux ; end; // Fin procedure TForm2.Button3Click(Sender: TObject); begin close; end; procedure TForm2.Button4Click(Sender: TObject); var i : Integer; begin for i := 0 to 100 do Image1.Canvas.Pixels[i,i] := clRed; end; // Cambia Ancho procedure TForm2.ComboBox1Change(Sender: TObject); var i, Ancho : integer; begin i := ComboBox1.ItemIndex; Ancho := StrToInt(ComboBox1.Items[i]); Image1.Canvas.Pen.Width := Ancho end; // Actualiza coordenadas de P y Q (Se deben capturar y1, x2, y2 de EditX). procedure TForm2.Edit1Change(Sender: TObject); begin x1 := StrToInt( Edit1.Text ); end; // // Constructor procedure TForm2.FormCreate(Sender: TObject); begin Image1.Canvas.Pen.Width := 1 ; Image1.Canvas.Rectangle(0,0, 505, 305); Edit1.Text := '0' ; // valores iniciales Edit2.Text := '0' ; Edit3.Text := '200' ; Edit4.Text := '300' ; ComboBox1.Text := '1'; end; end.