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

Anuncio
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA
FACULTAD DE CIENCIAS DE LA COMPUTACIÓN.
PRACTICA # 5
GRAFICADO GUIADO POR EVENTOS 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 con la característica de ser guiado por eventos. Aplicará en el pintado de líneas
usando un Form, Label, Button e Image. Se crearan los procedimientos asociados al
movimiento del ratón, así como al presionar y soltar el botón del ratón. Se complementa
el ejercicio con cambio de propiedades como el grueso de la pluma y el modo de
pintado.
ACTIVIDADES:
1. Crear una Forma VCL.
2. Declare las variables x1, y1, x2, y2 de tipo entero.
3. Incluir una región para imágenes (TImage).
4. Incluir un Panel.
5. Incluir en el panel dos editores (TEdit) para la posición del cursor.
6. Asociar el código para capturar en los editores la posición del cursor
(OnMouseMove en Eventos de Image1).
7. Incluir dos etiquetas Cx y Cy para la posición del cursor.
8. Modificar la Propiedad Visual del Cursor a crCross.
9. Incluir cuatro editores (TEdit) para las variables x1, y1, x2, y2.
10. Asociar el código para que al modificarse el contenido de los editores, se
actualice las variables x1, y1, x2, y2 que deben declararse en el programa
principal.
11. Incluir las cuatro etiquetas correspondientes.
12. Incluir en el panel, un botón para pintar una línea de P a Q.
13. Hacer pruebas de pintado de líneas
14.
15. Asociar el código para que al presionar el botón del ratón en Image1, se
almacene (y modifique) la posición del cursor en los editores asociados a x1,
y1 (OnMouseDown en Eventos de Image1).
Note que esta modificación genera automáticamente la actualización en el
programa de las variables correspondientes ya que se generó un evento.
16. Asocie el código correspondiente para OnMouseUp y x2, y2.
17. Hacer pruebas de pintado de líneas.
18.
19. Incluir un botón para cambiar el Ancho de la Pluma.
20. Incluir un botón para modificar el modo de pintado (pmNot, pmCopy).
21. Incluir un botón para limpiar la zona de trabajo y un botón para terminar (close).
22. Fin.
CODIGO
var
Form1: TForm1;
x1, y1, x2, y2 : Integer;
// Pinta Linea de P a Q
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Canvas.MoveTo( x1, y1);
Image1.Canvas.LineTo( x2, y2);
end;
// Cambia el modo de la Pluma
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.Pen.Mode := pmNot ;
end;
// Salir
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
// Limpia la zona de dibujo
procedure TForm1.Button4Click(Sender: TObject);
begin
Image1.Canvas.Pen.Mode := pmCopy; // Modo de Pintado
Image1.Canvas.Pen.Width := 1;
Image1.Canvas.Rectangle(0, 0, 500, 250);
end;
// Cambia el Ancho de la Pluma
procedure TForm1.Button5Click(Sender: TObject);
begin
Image1.Canvas.Pen.Width := 4;
end;
// Obtiene los datos x1, y1, x2, y2
procedure TForm1.Edit1Change(Sender: TObject);
begin
x1 := StrToInt( Edit1.Text );
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
y1 := StrToInt( Edit2.Text );
end;
procedure TForm1.Edit3Change(Sender: TObject);
begin
x2 := StrToInt( Edit3.Text );
end;
procedure TForm1.Edit4Change(Sender: TObject);
begin
y2 := StrToInt( Edit4.Text );
end;
// Constructor de Forma
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.Rectangle(0, 0, 500, 250);
end;
// Actualiza Posicion del cursor en Editores, al presionar Boton de Raton
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Edit1.Text := IntToStr( X );
Edit2.Text := IntToStr( Y );
end;
// Posicion del curso FUERA
procedure TForm1.Image1MouseLeave(Sender: TObject);
begin
Edit5.Text := 'Fuera';
Edit6.Text := 'Fuera';
end;
// Actualiza Posicion del Cursor en Editores al Mover el Raton
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Edit5.Text := IntToStr( X );
Edit6.Text := IntToStr( Y );
end;
// Actualiza Posicion del cursor en Editores al Soltar Boton de Raton
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Edit3.Text := IntToStr( X );
Edit4.Text := IntToStr( Y );
end;
end.
Descargar