c04

Anuncio
PDFMAILER.COM Print and send PDF files as Emails with any application, ad-sponsored and free of charge www.pdfmailer.com
DELPHI
DELPHI
c04
“Objetos en Delphi”
Pablo Roncagliolo
prb@2005
1
AÑO LENGUAJE
INVENTOR
DESCRIPCION
1900s
1950
1951
1952
1956
1956
1958
1960
1961
1961
1960
1964
1964
1966
1967
1970s
1972
1980s
1980
Bool
primer lenguaje
lenguaje ensamblador
fue el primer compilador
compilador muy rudimentario
sistema de TRAducción de FORmulas matemáticas
Compilador
BINARIO
ASM (ensamblador)
A-0
AUTOCODE
FORTRAN
COBOL
ALGOL 58
LISP
FORTRAN IV
COBOL 61 Extendido
ALGOL 60 Revisado
PASCAL
BASIC
FORTRAN 66
SIMULA 67
GW-BASIC
C
SMALLTALK/V
C con clases
Grace Hopper
Alick E. Glennie
IBM
IBM
Interprete orientado a la Inteligencia Artificial
sistema de TRAducción de FORmulas matemáticas
Niklaus Wirth
Universidad de Dartmouth (california)
IBM
programacion estructurada
Beginners All Purpose Symbolic Instruction Code
sistema de TRAducción de FORmulas matemáticas
Laboratorios Bell
Digitalk
Laboratorios Bell
antiguo y clasico BASIC
lenguaje con tipos
pequeño y rapido
lenguaje con clases
prb@2005
2
DELPHI
AÑO LENGUAJE
INVENTOR
1981
1982
1984
1985
1985
1989
1990s
1990s
1990
1993
1993
1990s
1990s
1990s
1991
1995
1995
1995
1995
1995
2001
Ministerio Japonés de Comercio InternacionalLenguaje
e Industria
estandar
(MITI)para la Inteligencia Artificial
Ministerio de Defensa de los EE.UU
lenguaje muy seguro
AT&T Bell Laboratories (Bjarne Stroustrup) compilador
compilador para bases de datos
Microsoft®
compilador de BASIC
interprete tipo QBASIC shareware
PROLOG
ADA
C++
CLIPPER
QuickBASIC
ASIC v5.0
VISUAL C++
VISUAL BASICScript
HTML
XML
SGML
WML
ASP
PHP
VISUAL BASIC
JAVA
CLIPPER 5.01
GNAT ADA95
FORTRAN 95
DELPHI
prb@2005
VISUAL BASIC .NET
DESCRIPCION
Microsoft®
Tim Berners-Lee
C. M. Sperberg-McQueen
Charles F. Goldfarb
lenguaje de script
para internet
para internet
para internet
para internet
para internet
para internet
Microsoft®
Microsoft®
Sun Microsystems
Kernighan & Ritchie
Ministerio de Defensa de los EE.UU
IBM
para internet y proposito general
compilador para bases de datos
lenguaje muy seguro
sistema de TRAducción de FORmulas matemáticas
Microsoft®
La evolución de Visual Basic
3
DELPHI
prb@2005
4
P.O.O.
Problemas que resuelve:
lRAD:
Desarrollo
Rápido de
Aplicaciones.
§
§
§
§
lDelphi:
Delphi:
Utiliza el
lenguaje Object Pascal.
Actualmente una de las áreas má
más candentes en la industria y en el ámbito acadé
académico
es la orientació
orientación a objetos. La orientació
orientación a objetos promete mejoras de amplio alcance en la
forma de diseñ
diseño, desarrollo y mantenimiento del software ofreciendo una solució
solución a largo plazo a
los problemas y preocupaciones que han existido desde el comienzo
comienzo en el desarrollo de
software: la falta de portabilidad del có
código y reusabilidad,
reusabilidad, có
código que es difí
difícil de modificar,
ciclos de desarrollo largos y té
técnicas de codificació
codificación no intuitivas.
lPOO:
Programación
Orientada a Objetos
(OOP en Inglés)
prb@2005
l
§
Portabilidad
Reusabilidad
Modificación de Código (=>herencias)
Tiempos de Programación
Codificación Intuitiva
5
prb@2005
6
1
PDFMAILER.COM Print and send PDF files as Emails with any application, ad-sponsored and free of charge www.pdfmailer.com
DELPHI
P.O.O.
Característica de un Lenguaje P.O.O:
§
§
§
OBJETO:
Basado en Objetos
Utiliza Clases
Herencia
un conjunto complejo de datos y
programas que poseen estructura y
forman parte de una organizació
organización
l
Un lenguaje orientado a objetos ataca estos problemas. Tiene tres
tres caracterí
características
básicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases.
Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La
barrera má
más difí
difícil de sortear es usualmente la herencia.
El concepto de programació
programación orientada a objetos (OOP) no es nuevo, lenguajes clá
clásicos como
SmallTalk se basan en ella. Dado que la OOP. se basa en la idea natural de
de la existencia de un
mundo lleno de objetos y que la resolució
resolución del problema se realiza en té
términos de objetos, un
lenguaje se dice que está
está basado en objetos si soporta objetos como una caracterí
característica
fundamental del mismo.
Esta definició
definición especifica varias propiedades importantes de los objetos. En primer
primer
lugar, un objeto no es un dato simple, sino que contiene en su interior
interior cierto nú
número de
componentes bien estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que
forma parte de una organizació
organización jerá
jerárquica o de otro tipo.
prb@2005
prb@2005
7
P.O.O.
8
P.O.O.
OBJETO:
OBJETO: silla
§
§
§
§
Relaciones
Propiedades
Métodos
§
§
Relaciones:
• Sobre el “Piso”
Piso”
• En la habitació
habitación
Cada uno de estos componentes desempeñ
desempeña un papel totalmente independiente:
• Las relaciones permiten que el objeto se inserte en la organizaci
organización y está
están formadas
esencialmente por punteros a otros objetos.
• Las propiedades distinguen un objeto determinado de los restantes
restantes que forman parte
de la misma organizació
organización y tiene valores que dependen de la propiedad de que se trate.
Las propiedades de un objeto pueden ser heredadas a sus descendientes
descendientes en la
organizació
organización.
• Los mé
métodos son las operaciones que pueden realizarse sobre el objeto, que
normalmente estará
estarán incorporados en forma de programas (có
(código) que el objeto es
capaz de ejecutar y que tambié
también pone a disposició
disposición de sus descendientes a travé
través de
la herencia.
prb@2005
9
P.O.O.
Propiedades:
• Nº de patas = 4
• Material = madera
• Color = café
café
• Estilo = rú
rústico
Métodos:
• Sentarse en la silla
• Pararse de la silla
• Mover la silla
prb@2005
10
P.O.O.
Estructura de un OBJETO:
OBJETO:
§
§
Encapsulamiento
Ocultació
Ocultación
§
Como hemos visto, cada objeto es una estructura compleja en cuyo interior hay datos
y programas, todos ellos relacionados entre sí
sí, como si estuvieran encerrados conjuntamente en
una cá
), es una de las caracterí
cápsula. Esta propiedad (encapsulamiento
(encapsulamiento),
características fundamentales en la
OOP.
Los objetos son inaccesibles, e impiden que otros objetos, los usuarios,
usuarios, o incluso los
programadores conozcan có
cómo está
está distribuí
distribuída la informació
información o qué
qué informació
información hay disponible.
Esta propiedad de los objetos se denomina ocultació
ocultación de la informació
información.
Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un objeto y
a lo que contiene. Si así
así fuera no se podrí
podría hacer gran cosa con él. Lo que sucede es que las
peticiones de informació
información a un objeto. deben realizarse a travé
través de mensajes dirigidos a él, con la
orden de realizar la operació
operación pertinente. La respuesta a estas ordenes será
será la informació
información
requerida, siempre que el objeto considere que quien enví
envía el mensaje está
está autorizado para
obtenerla.
El hecho de que cada objeto sea una cá
cápsula facilita enormemente que un objeto determinado
pueda ser transportado a otro punto de la organizació
organización, o incluso a otra organizació
organización totalmente
diferente que precise de él.
prb@2005
Relaciones
Propiedades
Métodos
11
§
§
prb@2005
Relaciones
§ Jerá
Jerárquicas (Obj. PadrePadre-Hijos)
§ Semá
Semánticas (Clasificació
(Clasificación de objetos)
Propiedades
§ Propias
§ Heredadas (de Obj. Padres)
Métodos
§ Propios
§ Heredados
12
2
PDFMAILER.COM Print and send PDF files as Emails with any application, ad-sponsored and free of charge www.pdfmailer.com
P.O.O.
DELPHI: “visual pascal”
Ej. de OBJETOS en Delphi:
Delphi:
l
Button
§
§
§
l
Relació
Relación
§ ClassInfo (pointer)
pointer)
Propiedad
§ Caption
§ Font
Método
§ OnClick
Edit
§
§
§
prb@2005
Relació
Relación
§ ClassInfo (pointer)
pointer)
Propiedad
§ Text
Método
§ OnChange
13
Objetos Básicos
prb@2005
14
FORM
Label
El objeto TForm
Label.
Label.caption
Label.
Label.font
• La Grilla
• Seleccionar Objetos
• PopupMenu
Edit
Edit.
Edit.text
Edit.
Edit.font
•
•
• “Tiempo de Diseño”
• “Tiempo de Ejecución”
• El ícono (Project | Options)
Options)
Button
Button.
Button.caption
Ejemplos en Delphi
prb@2005
15
FORM
prb@2005
16
FORM
Propiedad
Descripción Valores
Eventos
Descripción
Caption
Título
String...
String...
OnActivete
Name
Nombre
Form1
Cada vez que se
selecciona el form
OnCreate
BorderStyle
Borde
Single,
Sizeable,
Sizeable, Tool
Sólo cuando comenzó el
programa el form
OnClose
Cuando se cierra el form
OnKeyPress
Cuando se presiona una
tecla
OnShow
Cuando se muestra el form
OnClick
Cuando se presiona el
botón del mouse sobre el
form
Color
Color
WindowState Estado
prb@2005
“Alinear”
“Bring to Front”
Front” y “Send
“Send to Back”
clRed,
clRed,
clBlue,
clBlue,clGreen
...
Normal,
maximizado,
minimizado
17
prb@2005
18
3
PDFMAILER.COM Print and send PDF files as Emails with any application, ad-sponsored and free of charge www.pdfmailer.com
MULTIPLES FORM
MULTIPLES FORM
Para crear un nuevo Form
Para activar
un Form en
“tiempo de
ejecución”:
xxx.Show
Se crear un
nuevo Unit
Donde xxx es el nombre del Form
Refernecias “cruzadas”
prb@2005
19
MULTIPLES FORM
prb@2005
20
EJERCICIO PROPUESTO
Para cerrar
un Form en
“tiempo de
ejecución”:
Muchas aplicaciones mantienen la tradición de
utilizar una ventana denominada “acerca de” (about
),
(about),
para incluir el nombre de los autores, empresa
desarrolladora, versión del software, logo,
logo, fecha de
creación etc.
Realice un programa básico que posea una ventana
“acerca de” que pueda ser controlada desde un
menú.
Close;
Close;
Mediante refernecias “cruzadas”:
xxx.close
xxx.close;;
Donde xxx es el nombre del Form que se desea cerrar
prb@2005
21
GUARDAR
•
•
IMAGE
• Picture:
Picture: carga imágenes
BMP, JPG y otras
• Autosize:
Autosize: ajusta el tamaño
del objeto al de la imagen.
• Stretch:
Stretch: permite ajustar el
tamaño de la imagen.
• Transparent:
Transparent: permite
transparentar las partes no
coloreadas de la imagen.
No utilizar nombre
extraños
Crear un directorio para
cada proyecto
Utilizar siempre el botón
“save all”
all”
Tipos de archivos...
Abrir siempre el .dpr
.dpr
prb@2005
22
OBJETOS ESPECIALES
Guardar todo
“save all”
all”
•
prb@2005
23
SHAPE
• Brush | Color:
Color: define el
color de relleno
• PEN | Color:
Color: define color
del borde
• Shape:
Shape: tipo de figura
prb@2005
(círculo, rectángulo, etc.)
24
4
PDFMAILER.COM Print and send PDF files as Emails with any application, ad-sponsored and free of charge www.pdfmailer.com
OBJETOS ESPECIALES
OBJETOS ESPECIALES
SpeedButton
• Glyph:
Glyph: permite asignar una
imagen al botón.
Imágenes....
RichEdit
Editor de Texto
• Font
• Align:
Align: permite autoajustar
el objeto según el tamaño
del Form (client,
client, top,
top, left,
left,
none)
none)
Toolbar
Permite crear una barra de
herramientas (botones)
prb@2005
25
TIPs
prb@2005
TIPs
•
El tamaño de los objetos y los forms se mide en
pixels (puntos)
La pantalla de un computador posee varias
posibles resoluciones
Ancho
640 pixel de ancho por 480 pixel de alto
(width)
width)
•
•
•
•
•
800 x 600
1024 x 780
Etc...
•
Cada objeto en el form se posiciona según las
propiedades Left,
Left, Top.
Top.
top
x,y
Alto
(height)
height)
Alto
(height)
height)
y
prb@2005
800,600
27
Gráficos (Chart)
•
•
•
Ancho (width
(width))
Left
0,0
x
•
•
26
prb@2005
Grilla (StringGrid)
Tipo: línea, barras, pie
Axis:
Axis:
• Left
• Bottom
Title
3D o 2D
Gradiente
Series...
• Series1.Add
(y,’’,clred
clred))
Series1.Add(y,’’,
• Series1.AddXY
(x,y,’’,clteecolor
clteecolor))
Series1.AddXY(x,y,’’,
• Series1.AddBar
(valor,’’,clteecolor
clteecolor))
Series1.AddBar(valor,’’,
• Series1.clear
Series1.clear
• Series1.count
Series1.count
prb@2005
28
Grid1.Cells
[0,0]
Grid1.Cells[0,0]
•
•
•
•
•
•
•
29
F
i
l
a
s
Columnas
Grid1.Cells
[col,fil
fil]]
Grid1.Cells[col,
Grid1.colcount
Grid1.colcount
Grid1.rowcount
Grid1.rowcount
Grid1.Cells
[3,1]
Grid1.Cells[3,1]
Grid1.fixedCols
Grid1.fixedCols
Grid1.fixedRows
Grid1.fixedRows
Grid1.Options
true
Grid1.Options..goEditing:=
goEditing:=true
prb@2005
30
5
PDFMAILER.COM Print and send PDF files as Emails with any application, ad-sponsored and free of charge www.pdfmailer.com
Reloj (Timer)
Intervalo en milisegundos
•
•
Timer1.enabled
:= true o false
Timer1.enabled:=
Timer1.interval
:= 200;
Timer1.interval:=
prb@2005
31
6
Descargar