Editores de Diálogos Guías de Estilo Guías de Estilo Borland

Anuncio
Editores de Diálogos
Guías de Estilo
❚ Cajas de Herramientas
❚ Software interactivo.
❚ Herramienta de ayuda al
programador.
❚ Permite construir diálogos de forma
visual e interactiva, normalmente a
través de técnicas de manipulación
directa.
❚ Entorno para construir entornos.
❚ Ejemplos:
❙
❙
❙
❙
❙
Borland Builder C++ (aquí descrito)
Visual Basic
Delphi
Visual X Programming (Motif)
...
Entornos de Usuario (F. Pla, Universitat Jaume I)
1
Guías de Estilo
librerías de objetos diseñados para
facilitar la programación de EU.
❚ Objetos diseñados con cierto
estilo de entorno:
❙ tareas de interacción
establecidas.
❙ estilos de entorno
predeterminados (menús,
manipulación directa, ...).
❙ con su propio “look and feel”
❙ aspecto y apariencia predefinido.
❙ comportamiento de los objetos
predefinido.
Entornos de Usuario (F. Pla, Universitat Jaume I)
2
Borland Builder C++
❚ Características:
❚ Ventajas:
❙
❙
❙
❙
❙ facilita la tarea del
programador/diseñador.
❙ rapidez en el diseño y desarrollo
de entornos.
Caja de Herramientas.
Guía de Estilo.
Editor de Diálogos.
Basada en programación
orientada a objetos, C++.
❚ Modelo:
❙ Ficha→Ventana→Componente
❙ Objetos → objetos C++.
❙ Componentes → Fichas+Objetos
(reutilizables).
❙ Propiedades de los objetos:
❚ Inconvenientes:
❙ hay que seguir la funcionalidad
(comportamiento) y aspecto
predeterminado por la guía de
estilo.
❘ Atributos de los objetos
❘ En general, variables propias del
objeto.
Entornos de Usuario (F. Pla, Universitat Jaume I)
3
Entornos de Usuario (F. Pla, Universitat Jaume I)
4
Borland Builder C++
Entorno BBC++
❚ Modelo:
❙ Eventos:
❘ Cada objeto → eventos asociados
❘ Prácticamente, todo el código
adicional que se edita va asociado
a eventos.
❙ Métodos:
❘ Funciones para realizar una tarea
asociada a un componente.
❘ Funciones propias de los objetos.
❙ Por extensión, todas las
propiedades de la programación
orientada a objetos:
❙ Barra de menús desplegables
(común a aplicaciones Windows).
❙ Ayuda (F1):
❘ Herencia
❘ Encapsulación
❘ ...
Entornos de Usuario (F. Pla, Universitat Jaume I)
❘ Sensible al contexto.
❘ Bastante completa.
5
Entorno BBC++
Entornos de Usuario (F. Pla, Universitat Jaume I)
6
Entorno BBC++
❚ Ficha (Form):
Ventana →Área de la pantalla
❙ Al crearse: propiedades con
valores por defecto.
❙ Base sobre la que se construyen
los diálogos
❚ Paleta de botones:
❙ Personalizable (menú
emergentes).
❙ Acceso rápido a opciones de
barra de menús.
❚ Ficha Principal:
❙ Todo proyecto tiene una.
❙ Se crea una ficha vacía al iniciar
un nuevo proyecto.
❙ Se pueden crear otras fichas
dentro del mismo proyecto.
❚ Paleta de componentes:
❙ Componentes VCL de BBC++.
❙ Personalizable (menú
emergente).
Entornos de Usuario (F. Pla, Universitat Jaume I)
7
Entornos de Usuario (F. Pla, Universitat Jaume I)
8
Entorno BBC++
Entorno BBC++
❙ Análisis y edición de código:
❙ Inspector de
objetos:
❘ editor del código fuente.
❘ El programa principal, en general,
no se muestra ni edita:
Facilitar la edición de
propiedades y eventos.
View
→Project
Source
❘ Archivos DFM:
❙ Edición de
propiedades:
• valor de las propiedades de cada
componente
• Sobre la ficha:
❘ valor editable,
❘ lista de opciones
posible,
❘ valor booleano
(TRUE, FALSE),
❘ propiedades con
editores especiales
(icones, bases de
datos, etc.).
Entornos de Usuario (F. Pla, Universitat Jaume I)
menú emergente
9
Entorno BBC++
→View
as text
Entornos de Usuario (F. Pla, Universitat Jaume I)
10
Entorno BBC++
Project→Options
❚ Gestión de proyectos:
❙ Ficheros:
❘ .MAK .bpr
❘ por cada ficha: .DFM .h .cpp
View→Project Manager
Entornos de Usuario (F. Pla, Universitat Jaume I)
11
Entornos de Usuario (F. Pla, Universitat Jaume I)
12
Entorno BBC++
Entorno BBC++
Project→Options
❚ Ejecución
Run → Run
Parameters
(parametros en
línea)
❚ Depuración
❚ Compilación
Run → Step Over F8
Trace Intro F7
Run to Cursor
Programa Reset Ctrl-F2
Project→Compile Unit
Make
Build All
Information (proyecto ya
compilado)
Entornos de Usuario (F. Pla, Universitat Jaume I)
13
Entorno BBC++
Entornos de Usuario (F. Pla, Universitat Jaume I)
14
Diseño de Fichas
❚ Depuración
Propiedades
Run → Add Watch Ctrl-F5
Evaluate/Modify F7
Add Breakpoint
Name (Nombre del componente)
Caption (Título de la Ficha)
Left,Top (Posición)
Width,Height (Dimensiones)
Position (Modo posición al iniciar)
con condición
con contador
poDesigned,poScreenCenter,poDefault
Scaled (Proporciones Generales)
True,False
PixelsPerInch (Activado por Scaled)
WindowState (Estado al iniciar)
wsNormal,wsMinimize,wsMaximize
View → Breakpoints
lista de puntos de ruptura
Entornos de Usuario (F. Pla, Universitat Jaume I)
15
Entornos de Usuario (F. Pla, Universitat Jaume I)
16
Diseño de Fichas
Diseño de Fichas
Propiedades
Propiedades
ClientWidth,
ClientHeight (Área del Cliente)
BorderIcons(Estilo controles borde)
Propiedad compuesta por:
biMinimize,biMaximize,biSystemMenu
que toman valores True, False
True,False
Hint (Etiquetas de ayuda)
Enabled (Estado de la Ficha)
Visible (Estado de visibilidad de la
Ficha)
BorderStyle (Borde de la Ficha)
bsSizable (permite redimensionarla)
bsSingle (NO permite redimensionarla)
bsNone (sin borde)
Entornos de Usuario (F. Pla, Universitat Jaume I)
Menu (Menú asociado a la Ficha)
PopupMenu (Menú emergente
asociado a la Ficha)
ShowHint (Activa etiquetas de
ayuda)
True,False
17
Entornos de Usuario (F. Pla, Universitat Jaume I)
Diseño de Fichas
Diseño de Fichas
Propiedades
Propiedades
FormStyle (Estilo de la Ficha)
AutoScroll (Barra desplazamiento)
fsNormal, fsStayOnTop
fsMDIForm,fsMDIChild
Icon (Icono de la Ficha al minimizar)
❙ Cargar mediante editor
❙ Cargar en ejecucion con método
LoadFromFile del objeto Icon
Cursor (Cursor del ratón de la Ficha)
lista de posibles valores
Font (Tipo de letra en la ficha)
objeto de tipo Tfont:
Color, Height, Size, Style
Entornos de Usuario (F. Pla, Universitat Jaume I)
18
19
True,False
HorzScrollBar, VertScrollBar
HelpContext (Asociar Ficha a
página de la ayuda)
❚ Propiedades de sólo ejecución
ComponentCount
ControlCount
❚ Superficie de trabajo
Handle (identificador ventana Windows)
Canvas (objeto representa interior de
ventana)
Entornos de Usuario (F. Pla, Universitat Jaume I)
20
Diseño de Fichas
Diseño de Fichas
Eventos
Eventos
Tobject Sender (parámetro común)
OnClick
❚ Ratón
OnMouseMove (ratón movimiento)
X,Y
Shift
ssShift
ssAlt
ssLeft
ssDouble
barra espaciadora, Intro, Escape o pulsar
botón izquierdo.
OnDblClick
❚ Teclado
OnKeyDown
OnKeyPress (teclas normales)
OnKeyUp
ssCtrl
ssRight
ssMiddle
OnMouseDown (tecla pulsada)
OnMouseUp (tecla soltada)
Key Código de tecla virtual
Shift
X,Y
Shift
Button
mbRight,mbLeft,mbMiddle
Entornos de Usuario (F. Pla, Universitat Jaume I)
21
Diseño de Fichas
Entornos de Usuario (F. Pla, Universitat Jaume I)
22
Diseño de Fichas
Eventos
❚ Arrastrar y Soltar
OnDragOver (Arrastrar por encima)
Source (Tobject arrastrado)
X,Y
State dsDragEnter,dsDragMove,
dsDragLeave
OnDragDrop (Se suelta el objeto
arrastrado)
Source (Tobject arrastrado)
X,Y
❚ Otros Eventos
OnShow, OnHide, OnResize, etc.
Entornos de Usuario (F. Pla, Universitat Jaume I)
23
Métodos
❚ Mostrar y Ocultar
Show (mostrar una ficha no
visible)
BringToFront (mostrarla encima
de las demás)
SendToBack (mostrarla detrás de
las demás)
❚ Imagen de la Ficha
Print (imprime imagen Ficha)
GetFormImage (devuelve un
Tbitmap)
Entornos de Usuario (F. Pla, Universitat Jaume I)
24
Control Label
Control Edit
Propiedades
Propiedades
AutoSize (tamaño de la letra se
ajusta al tamaño del control)
True,False
Align (alineación del control respecto
a la ficha contenedora)
Alignment (alineación del texto
dentro del control)
Font (Objeto Tfont para fuento de
los caracteres)
Pitch (Anchura de los caracteres)
fpDefault,fpVariable,fpFixed
ecNormal,ecLowerCase,ecUpperCase)
ReadOnly (mostrar información solo
lectura)
True,False
PasswordChar (Carácter en modo
palabra secreta)
Si no hay especificado ninguno, el texto
que aparece es el normal.
Color (Color de fondo)
Transparent (True,False)
Entornos de Usuario (F. Pla, Universitat Jaume I)
Text (Texto del control)
MaxLength (num. máximo de
carácteres)
CharCase (Conversión de la
entrada)
25
Entornos de Usuario (F. Pla, Universitat Jaume I)
Control Edit
Control Edit
Propiedades
Eventos
SelStart
SelEnd (principio y final de texto
seleccionado)
SelText (texto seleccionado)
OnEnter (cuando el control se
activa)
OnExit (cuando se desactiva)
OnChange (cuando se produce un
cambio en el contenido del control)
Métodos
SelectAll (seleccionar todo el texto)
ClearSelection (borrar selección)
Clear (borrar texto del control)
CopyToClipboard
CutToClipboard
PasteToClipboard
Entornos de Usuario (F. Pla, Universitat Jaume I)
26
27
Ejemplo:
void __fastcall
TForm1::CambioTexto(TObject *Sender)
{ TEdit *edit;
AnsiString texto;
edit=(TEdit*)Sender;
texto=edit->Text;
ShowMessage(texto);
}
Entornos de Usuario (F. Pla, Universitat Jaume I)
28
Control Memo
Otros controles
Entrada de texto multilínea
Propiedades
Lines (array de líneas. Objeto del tipo
Tstrings)
WordWrap (activa pasar a línea
siguiente si no cabe texto en una
True,False
línea)
Métodos
Add (añadir línea al final)
Insert (insertar línea)
Move (cambiar de índice la línea)
Exchange (intercambiar líneas)
SaveToFile,LoadFromFile (guardar /
cargar archivo texto en Lines)
Entornos de Usuario (F. Pla, Universitat Jaume I)
29
Otros controles
Entornos de Usuario (F. Pla, Universitat Jaume I)
30
Otros controles
❚ Selección de valores discretos
y rangos (TTrackBar)
Min,Max (rango de la medida)
Position (valor actual)
Orientation tbHorizontal, tbVertical
TickMarks (Posición de las marcas
de división)
❚ Estado de un proceso
(TProgressBar)
Mismas características Ttrackbar.
StepIt permite incrementar en
Step el estado de la barra.
tmBottomRight, tmTopLeft, tmBoth
SelStart,SelEnd (Asignan un rango
dentro de Min,Max y se muestra en
el control. No hay mecanismo
automático para seleccionar estos
valores)
Entornos de Usuario (F. Pla, Universitat Jaume I)
❚ Botones (Button)
Evento OnClick: Default a True
Tecla Escape: Cancel a True
❚ Cajas de Selección multiple
(CheckBox)
Propiedad Checked (Boolean)
❚ Botones de Radio: selección
excluyente (RadioButton)
❚ Agrupaciónde botones
(GroupBox)
Parent de controles en su interior.
31
❚ Incremento/Decremento de
valor (TUpDown)
Min,Max,Position,Increment
Wrap (modo circular)
Associate (Control TEdit asociado)
Entornos de Usuario (F. Pla, Universitat Jaume I)
32
Múltiples páginas
Proyectos Multificha
Páginas TPageControl
❚ Cada página de un TPageControl
es un TTabSheet
❚ ActivePage (página activa)
❚ Pages (array de PageCount
TTabSheet’s)
❚ Insertar una página:
Opción New Page del menú
emergente sobre el TPageControl
❚ TabVisible a false permite ocultar
la página
❚ Controles comunes a las páginas:
Insertar fuera del TpageControl y
cambiar su posición.
Entornos de Usuario (F. Pla, Universitat Jaume I)
33
Proyectos Multificha
AnsiString InputString;
InputString=InputBox(
"Dame Nombre","Nombre","Remigio");
Entornos de Usuario (F. Pla, Universitat Jaume I)
34
Proyectos Multificha
MessageDlg(AnsiString,TMsgDlgType,
TMsgDlgButtons,HelpCtx)
void __fastcall TForm1::
Flauta2Click(TObject *Sender)
{
if(MessageDlg("Esta seguro que desea
continuar?",mtConfirmation,
TMsgDlgButtons() << mbYes << mbNo,
0) == mrYes)
ShowMessage("Dijo que SI");
}
Entornos de Usuario (F. Pla, Universitat Jaume I)
❚ Mostrar mensajes y captura de
datos simples
ShowMessage(AnsiString)
InputBox (AnsiString, AnsiString,
AnsiString)
35
❚ Crear una Ficha
Diseño: Menú New -> Form
Ejecución:
Unit1, Unit2 (Fichas)
Desde Unit1 crear una Unit2:
❘
❘
❘
❘
Incluir Unit2.h en Unit1.cpp
Crear instancia con new
Mostrar con Show, ShowModal
Destruir con delete
{ TForm2 Form2;
Form2=new TForm2(this);
switch(Form2->ShowModal()) /*ModalResult*/
{ case mrOk: Flautin1->Checked=true; break;
case mrNo: Flautin1->Checked=false; break;
}
delete Form2;
}
Entornos de Usuario (F. Pla, Universitat Jaume I)
36
Proyectos Multificha
Menús
❚ MainMenu: Menú de Ficha
Items (TMenuItem)
Edición del menú:
Cuadro de diálogo
❚ Cargar y Salvar archivos
FileName: archivo seleccionado
Filter: Ej. “Archivos texto | *.TXT”
InitialDir: directorio inicial
TOpenDialog *dialogo = new TOpenDialog(this);
if(dialogo->Execute()==true)
ShowMessage("Fichero seleccionado: ”
+dialogo->FileName);
Entornos de Usuario (F. Pla, Universitat Jaume I)
37
ShortCut (Tecla de acceso rápido)
Submenús (menú emergente en
edición)
Break (Menús multicolumna)
Entornos de Usuario (F. Pla, Universitat Jaume I)
Menús
38
Gráficos
❚ PopupMenu: Menú emergente
Activación en un componente:
botón derecho del ratón.
Asignación menú a componente:
Propiedad PopupMenu
Opciones (TMenuItem)
Enabled (true,false)
Visible (true,false)
Checked (true,false)
RadioItems (true,false)
GroupIndex (grupo opciones)
Código opciones: Evento OnClick
❚ Image (TImage)
Picture (Tpicture -TBitmap,TMetaFile,TIcon-)
Entornos de Usuario (F. Pla, Universitat Jaume I)
Entornos de Usuario (F. Pla, Universitat Jaume I)
39
Métodos:
LoadFromFile
SaveToFile
Canvas
Propiedades:
Pixels (Matriz de acceso a cada pixel)
Pen, Brush, Font, etc.
Métodos:
LineTo,Polygon,Arc,etc.
TextOut (dibujar texto)
Draw, CopyRect (Copiar Bitmap,Icon
o Metafile previamente cargado)
40
API de Windows
Bases de Datos
❚ Flexibilidad contra Facilidad
❚ Funciones no accesibles desde
objetos BBC++.
Aplicación
IDAPI (Integrated Database
Application Program Interface)
Ej. Funciones para comunicarnos
con puerto serie.
❚ Mezcla de Sistema de Gestión de
Ventanas, Paquete Gráfico y SO.
❚ Funciones en diferentes DLLs
(Dynamic Link Library). Ejemplo:
BDE (Borland DataBase Engine)
Controlador
dBase
WINMM.DLL funciones multimedia
WING.DLL funciones de gráficos
WINDOWS.HPP fichero cabecera
Controlador
ASCII
Controlador
Pardox
❚ Funciones Callback.
Funciones que editaremos para
engancharlas a eventos Windows a
través de un Hook.
Controlador
API
ODBC (Open
Database
Connectivity)
Controlador
Base de Datos
Entornos de Usuario (F. Pla, Universitat Jaume I)
41
Entornos de Usuario (F. Pla, Universitat Jaume I)
42
Descargar