Practica # 3 en DELPHI - pagina del profesor graciano cruz almanza

Anuncio
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.
Descargar