Professional Documents
Culture Documents
IMPLEMENTACIN DE
INTERFACES GRFICAS
EN DELPHI
VENTANAS
Una interfaz grfica utiliza mltiples
ventanas.
Organizacin en estrella
Ventana principal.
Representa a la propia aplicacin:
ventanas secundarias
ventana
principal
dilogos
Modelos de organizacin de
ventanas en MS-Windows
Interfaz de documentos simples
(SDI: Single Document Interface)
Las ventanas secundarias se colocan fuera de
la ventana principal y se mueven o cambian
de tamao de forma independiente, a travs
del gestor de ventanas de MS-Windows
Ejemplo: Delphi
Foco de entrada
Normalmente, slo una aplicacin, y una
ventana dentro de ella, estn activas en un
momento dado.
Se dice que esta ventana es el foco de
entrada: el gestor de ventanas considera que
las pulsaciones de tecla o de los botones del
ratn se refieren a ella.
Excepciones:
En algunas aplicaciones se mantiene
activa la ventana principal y una de las
secundarias (Ms frecuente en
aplicaciones MDI). Ejemplo: Turbo
Pascal para Windows.
Algunas combinaciones de teclas y
botones se interpretan como rdenes al
gestor de ventanas. Ejemplo: Alt-Tab para
cambiar la ventana activa.
Implementacin de interfaces grficas en Delphi
11
10
Distribucin de elementos
entre la ventana principal y las
ventanas secundarias
Colocar las funciones principales en la
ventana principal, y las funciones secundarias
en las ventanas secundarias.
Agrupar los datos y funciones que estn
lgicamente relacionados.
Por orden de prioridad:
Se usan al mismo tiempo.
Se usan con el mismo objetivo.
Se usan para manipular el mismo tipo de
datos.
Representan el mismo tipo de cosa.
Se modifican o controlan el uno al otro.
12
Errores frecuentes
Distribucin incorrecta de funciones y datos
entre la ventana principal y las secundarias.
(Ejemplo: Colocar una funcin que se usa
con mucha frecuencia en una ventana
secundaria que no est siempre visible)
Falta de equilibrio:
Ventana principal demasiado ambiciosa.
Demasiadas ventanas secundarias.
Ventanas secundarias que bloquean la
ventana principal.
13
14
Ventanas en Delphi
15
16
17
18
TECNICAS DE
INTERACCIN
Pginas alternativas (TTabSheet y
TPageControl)
19
20
En Delphi: TMainMenu
En Delphi: TPopupMenu
21
Mens en cascada
22
Botones
Botones de accin (push buttons)
23
24
En Delphi: TCheckBox
25
26
Listas
En Delphi: TTrackBar
Fechas y horas
En Delphi: TDateTimePicker y
TMonthCalendar
27
En Delphi: TComboBox
M. Martnez, URJC, 2004
28
TCNICA
Sealar con el ratn
Teclas de cursor
Teclas de avance (Tab)
Barra de desplazamiento
Ordenar una operacin Men
Botn de accin
Teclas rpidas
Teclas de funcin
Introducir o elegir
un dato
Acciones/Parmetros
Para ordenar acciones usar mens y
botones de accin, adems de tcnicas de
interaccin de teclado como las teclas
rpidas y de funcin. (Abrir una nueva
ventana se considera una accin).
Para introducir o elegir datos y parmetros
usar botones de opcin, casillas, botones
de incremento y decremento, selectores de
rango, campos de edicin de texto, listas.
No utilizar elementos de introduccin de
datos para ordenar acciones, ni botones de
accin para introducir datos.
Botones de opcin
Casillas
Campos de edicin
Selector de rango
29
30
31
32
33
Errores frecuentes
Eleccin incorrecta de los controles para
acciones/parmetros.
Demasiados niveles de mens.
Controles incmodos para mover/cambiar de
tamao.
Etiquetado insuficiente de los botones y
dilogos (no se entiende para qu sirven).
No dar alternativas para una accin poco
visible, sobre todo en casos de manipulacin
directa. (Ejemplo: doble pulsacin sobre un
objeto para dar una orden).
Para usuarios sin experiencia: Barra de
mens.
Todas las posibles acciones deben ser
accesibles a travs de la barra de mens.
Para usuarios expertos: Teclas rpidas y
de funcin.
Implementacin de interfaces grficas en Delphi
35
Mens:
Agrupar las opciones por (en orden de
prioridad)
Funcionalidad.
Frecuencia de uso.
Alfabticamente.
34
ELEMENTOS DE
VISUALIZACIN
Muchas de las tcnicas de interaccin de
entradas sirven tambin como visualizadores
de informacin (texto, listas, ...)
En particular, cuando hay manipulacin
directa las operaciones se realizan
bsicamente actuando sobre la representacin
grfica del dato.
Clases especializadas para visualizacin en
Delphi:
Indicador de progreso: TProgressBar
Listas: TListView
rboles: TTreeView
Tablas: TDrawGrid
Grupos de iconos: TImageList
36
37
38
39
40
Modelo HSB
Basado en la percepcin humana del
color.
Debemos tenerlo en cuenta al disear la
interfaz, aunque luego especifiquemos el
color elegido por otro mtodo.
Implementacin de interfaces grficas en Delphi
41
Correspondencia RGB-HSB
No hay una correspondencia sencilla.
No todos los colores representables en uno de
los modelos lo son en el otro.
Lo mejor es utilizar una herramienta, como la
Definicin de colores personalizados de
MS-Windows (usada tambin por Delphi)
42
43
44
Texto:
Lectura continua:
Mximo 4 colores.
Saturacin media-baja.
Buscar un contraste intermedio entre el fondo
y el texto, a base principalmente de diferente
luminosidad.
Ejemplos:
45
46
Componentes
Propiedades
47
48
Hay propiedades:
De slo lectura.
Modificables slo en tiempo de edicin.
Modificables slo en tiempo de ejecucin
Compuestas.
Fichas y controles
50
Ejemplo
51
type
TForm1 = class(TForm)
Texto: TEdit;
Boton: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
Implementacin de interfaces grficas en Delphi
52
Sucesos
53
54
Principales sucesos
55
56
57
Ejemplo
type
TForm1 = class(TForm)
Texto: TEdit;
Boton: TButton;
procedure BotonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure TForm1.BotonClick(Sender:
TObject);
begin
Texto.Text := 'Has pulsado el botn';
end;
Implementacin de interfaces grficas en Delphi
58
59
60
61
62
63
64
Paleta de componentes
65
66
Pginas de la paleta de
componentes
La paleta est dividida en pginas que
agrupan los componentes segn su
organizacin interna en Delphi:
Standard: Controles normales de
Windows: Mens, Botones de accin y de
opcin, etc.
Additional: Controles ms sofisticados de
MS-Windows: BitButton, MasEdit, etc.
Win32: Controles de Windows 9x/NT:
Pginas, selector de valor, etc.
System: Componentes para acceder a
funciones del sistema, como el
temporizador.
Dialogs: Ventanas de dilogo
predefinidas.
Win3.1: Controles anticuados de
Windows 3.1. Para compatibilidad con
Delphi 1.0
Implementacin de interfaces grficas en Delphi
67
68
Lista de componentes
Men View-Component List
Ordenada alfabticamente.
Podemos hacer bsquedas por nombre.
!No se puede aadir un componente
directamente en el cdigo Pascal!
Implementacin de interfaces grficas en Delphi
69
70
71
72
Mtodos de respuesta
La pgina derecha del inspector de objetos
nos muestra los posibles sucesos.
Para aadir un mtodo de respuesta (a nivel
de ficha).
Introducir el nombre del mtodo en el
cuadro de texto del inspector, al lado del
nombre del suceso.
Si pulsamos dos veces sobre este cuadro
de texto, Delphi genera un mtodo con el
nombre del objeto seguido del nombre del
suceso.
Si pulsamos dos veces en el objeto en la
ficha, Delphi genera un mtodo para el
suceso por defecto.
En cualquiera de los casos, aade el mtodo a
la ficha, y el editor de cdigo se coloca en el
cuerpo de este mtodo.
Implementacin de interfaces grficas en Delphi
73
75
Ejercicio 1 (Continuacin)
Aadir un mtodo de respuesta a la opcin
Abrir del men Archivo que muestre un
mensaje.
1 En el editor del men principal, doble
pulsacin sobre la opcin Abrir.
Genera un mtodo de respuesta para el
evento por defecto, que en este caso es
pulsar (Click):
procedure TForm1.AbrirClick(Sender:
TObject);
begin
end;
2 Aadir en el cuerpo de este mtodo:
ShowMessage('Archivo- Abrir');
74
76
77
79
78
80
81
83
82
Dilogos tpicos
En la pgina Dialogs de la paleta de
componentes.
El editor grfico los aade a la ficha actual,
como un control ms, aunque realmente son
dilogos modales que se mostrarn desde
alguno de los mtodos de respuesta de la
ficha actual.
Aparecen como iconos y no se puede
modificar su apariencia, s el resto de las
propiedades.
84
85
Mltiples fichas
Para crear una nueva ficha en el editor
grfico: men File |New Form.
Por cada ficha, el editor aade al programa
principal una llamada a
Application.CreateForm que crea la ficha
junto con sus controles.
Por defecto, toma la primera ficha creada
como ventana principal de la aplicacin.
Slo se presenta en pantalla automticamente
la ventana principal.
Crear las fichas de esta manera exige que los
objetos ficha sean variables globales, para
que sean accesibles desde el programa
principal.
86
87
88
Ejemplo
89
UNIT TipoLetra;
UNIT Menu;
...
...
TVentanaTipoLetra = CLASS(TForm)
TVentanaMenu = ...
Tamanyo: TRadioGroup;
...
Fuentes: TListBox;
IMPLEMENTATION
90
...
USES TiposLetra;
IMPLEMENTATION
PROCEDURE TVentanaMenu.TipoLetraClick
PROCEDURE TVentanaTipoLetra.FormShow
(Sender: TObject);
BEGIN
(Sender: TObject);
BEGIN
IF VentanaTipoLetra.ShowModal = mrOK THEN
Fuentes.ItemIndex := 0;
BEGIN
GTamanyo.ItemIndex :=0;
IF VentanaTipoLetra.Negrita.Checked THEN
END;
writeln(Negrita);
PROCEDURE TVentanaTipoLetra.AceptarClick
(Sender: TObject);
BEGIN
...
END;
END;
ModalResult := mrOK;
END;
Implementacin de interfaces grficas en Delphi
91
92
Trabajo en equipo
Repartir entre los miembros del equipo la
definicin de ventanas.
Ponerle a las ventanas nombres
significativos.
Para integrarlas en un mismo proyecto: men
Project |Add to Project
Modificar, si es necesario, la creacin y
visualizacin de las ventanas.
93