Programación Delphi
Programación Delphi
Ayudanta de Programacin II
Programacin II
Introduccin a Delphi
Para hacernos una idea de lo que es, y de lo que se puede conseguir con Delphi, vamos a ver de forma
breve las propiedades ms importantes y destacadas de que consta.
Las aplicaciones pueden colocarse de forma muy sencilla en la pantalla segn el principio de
mdulos. Para ello se dispone de una paleta dotada de una gran variedad de componentes, algo
as como los bloques de construccin de cada programa. Esta paleta es denominada por Borland
VCL (Visual Component Library), o biblioteca de componentes visuales. Tiene un aspecto
similar a Visual Basic, pero aunque el aspecto externo indica la misma facilidad de uso que
Visual Basic, el corazn del sistema Delphi es mucho ms potente.
Esta VCL es mucho ms amplia que la de Turbo Pascal para Windows o la conocida OWL 1.0
(Object Windows Library) de Borland Pascal, y ofrece adems una abstraccin mucho ms alta
del sistema operativo. El programador es totalmente independiente de las particularidades de
Windows, tales como manejadores (Handlers), punteros y funciones del API de Windows
(Application Programming Interface). La programacin se realiza con los cmodos
componentes de Delphi y no con las complejas llamadas al sistema de Windows. Esto
simplifica enormemente la hasta ahora poco clara programacin bajo Windows.
A diferencia de otras herramientas de desarrollo visuales (Visual Basic, Toolbook, etc.) con
Delphi es posible crear nuevos componentes que pueden entonces incorporarse en la paleta con
los componentes ya existentes y que pueden ser utilizados de la misma forma. La VCL puede
estructurarse libremente y as adaptarse totalmente a las situaciones propias de programacin.
Ref.: [email protected]
Ayudanta de Programacin II
que constituye un estndar de lenguaje de uso general para consultar y modificar datos
administrados por servidores especiales de bases de datos como Oracle, Sybase, Informix o
Adabas.
Delphi dispone del Object Pascal, un lenguaje de programacin muy poderoso que est sin
dudas a la altura del C++ y que incluso lo supera en algunos aspectos. Este lenguaje surge a
partir del desarrollo del Borland Pascal 7.0, un lenguaje que ocupa un lugar muy importante en
la programacin de ordenadores personales. El Object Pascal es totalmente compatible con el
Borland Pascal 7.0, lo que permite que programas desarrollados con este ltimo puedan ser
convertidos a Delphi. Incluso la biblioteca de clases OWL 1.0 se incluye con el paquete de
Delphi. Aspectos nuevos en el Object Pascal en relacin a sus predecesores son el ExceptionHandling (tratamiento y canalizacin de errores en run-time), un manejo ms sencillo de los
punteros con reconocimiento automtico y referenciacin, las llamadas propiedades de objetos
que pueden ser asignadas como las variables, etc.
Las aplicaciones terminadas quedan disponibles como archivos ejecutables (.EXE) que pueden
utilizarse solos y sin bibliotecas adicionales. Consecuentemente la velocidad con la que pueden
ejecutarse los programas creados es muy alta. Excepcionalmente, si se incluyen llamadas a
VBX, o DLLs, stas se deben incluir junto con el ejecutable. Tambin es necesario incluir el
BDE (Borland Database Engine) en las aplicaciones de bases de datos.
Delphi es una "Two-Way-Tool", es decir, una herramienta de dos direcciones, porque permite
crear el desarrollo de programas de dos formas: una de forma visual en la pantalla, por medio de
las funciones de Drag & Drop (Arrastrar y colocar) y la otra a travs de la programacin
convencional, escribiendo el cdigo. Ambas tcnicas pueden utilizarse de forma alternativa o
simultnea.
El entorno de Delphi
El entorno de programacin tpico consta en Delphi de cuatro ventanas que comparten el espacio
disponible de la pantalla. Cada una de estas ventanas puede modificarse, cerrarse y volverse a abrir
mediante el men View. Estas ventanas fundamentales son:
1.
2.
3.
4.
La ventana principal
El inspector de objetos (object inspector)
El editor de cdigo fuente
La ventana (o ventanas) de programa (Forms)
Ref.: [email protected]
Ayudanta de Programacin II
Programacin II
Delphi 5
Ventana Principal
Men Principal
Accesos Directos o
Iconos de Trabajo
Ref.: [email protected]
Formulario
En
Blanco
Inspector de
Objetos
Paleta Standard
Ayudanta de Programacin II
Ref.: [email protected]
Ayudanta de Programacin II
La ventana principal
La barra de programa del margen superior de la pantalla representa la ventana principal de Delphi.
Si se cierra, todas las otras ventanas tambin finalizan su servicio. En la barra de mens de la ventana
principal estn disponibles todas las rdenes relacionadas con el procesamiento de un proyecto
concreto. La carga y almacenamiento de proyectos pertenecen igualmente al men, as como la
presentacin u ocultacin de las distintas ventanas del entorno de desarrollo.
Tambin se encuentran aqu las rdenes para compilar y ejecutar un programa. Finalmente, desde
aqu tambin se puede llamar a una parte de los programas externos suministrados con el paquete de
Delphi: el "Image Editor", el "Database Desktop", y el "BDE Config". El nico utilizado es el editor de
imgenes, ya que es capaz de crear y editar ficheros .BMP (por ejemplo las imgenes de los
componentes mecnicos, etc), .ICO (el icono de la aplicacin), .CUR (Los distintos cursores que he
definido), .RES (Resource File) y .DCR (Component Resource).
El mayor espacio de la ventana principal lo ocupa la paleta de componentes, que se encuentra dividida
en secciones temticas a travs de unas pestaas. Al igual que en un programa, si situamos el cursor
sobre cada icono, saldr un mensaje indicando el tipo de accin que realiza.
Ref.: [email protected]
Ayudanta de Programacin II
rea
Descripcin
Contiene todos los elementos de control que Windows pone a disposicin normalmente,
Standard empaquetados en la estructura clara de un componente. En SISCON.EXE los ms
usados son, los botones, men, ToolBar, ImageList, ActionList y MainMenu.
Contiene todos los componentes que Windows no pone a disposicin como elementos de
control estndar, pero han resultado tiles con el paso del tiempo en varios programas.
Additional Principalmente se ha usado en SISCON.EXE los botones de grficos, el
TabbedNoteBook, las tablas (TStringGrid), el visor de grficos (Timage), y el
TScrollBox.
Aqu se encuentran los componentes desarrollados especialmente para una captura
cmoda y rpida de las bases de datos. Se puede tratar tanto de bases de datos locales,
Data Acces
como de sistemas repartidos (con importancia especial en la versin Client-Server de
Delphi).
Data
Dispone de componentes variados para el procesado de datos, trabajando en conjuncin
Controls con los elementos del rea "Data Access".
Dialogs
System
VBX
Contiene algunos elementos VBX visualizados como si fuesen componentes, tales como
un visor de grficos, un generador de diagramas, etc.
Samples
Esta ltima rea contiene algunos otros componentes tiles cuyo cdigo fuente se
adjunta, tales como barras de progresin, calendario, etc. SISCON.EXE hace uso de la
barra de progresin y del botn con flechas.
Ref.: [email protected]
Ayudanta de Programacin II
El entorno (ventanas, colocacin de botones, listas, etc.) se crea de forma puramente visual, es decir,
simplemente se coge con el ratn el componente deseado de la barra de herramientas de la ventana
principal y lo sita en la ventana sobre la que se desarrolla el programa (Form).
En el Form se puede reproducir el aspecto y el comportamiento de todo tipo de ventanas,
simplemente especificando las propiedades correspondientes y/o escribiendo ampliaciones propias. De
esta forma se caracteriza a la ventana a travs de sus propiedades: anchura, altura, coordenadas, estilo
de los bordes, colores, eventos ante los que reacciona, etc.
Ref.: [email protected]
Ayudanta de Programacin II
La mitad derecha de la ventana contiene el valor actual de cada propiedad. Puede tratarse de
nmeros, cadenas de caracteres, constantes determinadas, grficos, textos, punteros, etc.
En el caso de estar visualizando la parte correspondiente a eventos, vemos que sale una lista con
muchos de los eventos ante los cuales el componente reacciona (no todos, algunos no son accesibles a
travs del inspector de objetos y hay que definirlos mediante cdigo). Si por ejemplo queremos colocar
un componente mecnico cuando el usuario haga click con el ratn, debemos hacer que el "Lienzo" (en
realidad un TScrollBox) reaccione ante el evento OnClick. Para ello efectuamos un doble click sobre el
campo situado a la derecha de "OnClick" en el inspector de objetos (inspeccionado el TScrollBox) con
lo cual se nos escribe directamente el siguiente cdigo en la ventana de edicin de cdigo:
procedure TForm1.LienzoClick (Sender: TObject);
begin
end;
Lo que se pone dentro del procedimiento ser lo que se ejecute cuando se produzca el evento
OnClick sobre el TScrollBox. En nuestro caso de ejemplo dibujar un componente mecnico.
Naturalmente, las rutinas de eventos pueden agregarse repetidas veces. Por ejemplo si se ha
vinculado la opcin del men "Cerrar" con una rutina OnClick que se encarga de cerrar la ventana
activa, y disponemos tambin de el icono con la llave (un TSpeedButton), no es necesario escribir otra
vez el mismo cdigo. Basta con indicar el nombre de la rutina existente en el evento OnClick en el
botn.
Ref.: [email protected]
Ayudanta de Programacin II
En Resumen
Programacin Visual.- Este tipo de programacin se caracteriza por que aprovecha todos los
recursos de la plataforma donde se encuentra instalado, vale decir que hace uso de las ventanas que
ofrece el sistema operativo.
Delphi.- Este es el lenguaje de programacin visual (sucesor del pascal de donde aprovecha su
rapidez en el proceso de compilacin y su estructura), es considerado como uno de los lenguajes mas
potentes ya q permite generar proyectos totalmente independientes del lenguaje.
La programacin en delphi (1, 2, 3, 4, 5,, 8) tiene casi toda la sintaxis de pascal lo que quiere
decir que la codificacin es totalmente en ingles.
Men Principal.- En el men principal es donde se encuentran todos los mens desplegables
(Archivo, Edicin, Ver, Proyecto, Componente, Base de Datos, Herramientas, etc.).
Accesos Directos.- Los accesos directos nos facilitan el trabajo de hacer una bsqueda por todo el
men principal, solo al hacer un clic sobre el icono para que el programa haga el trabajo seleccionado
por el usuario.
Formulario.- El Formulario es la interfase entre el usuario y el sistema este objeto nos permite
insertar otro tipo de objetos como ser: Botones de Comando, Etiquetas de Texto, Rejillas, etc.
Inspector de Objetos.- Este objeto nos permite conocer y controlar todas las propiedades de los
objetos que se encuentran en el Formulario, tambin nos permite controlar cuando vas ha realizar una
determinada accin cada uno de los objetos (EVENTOS).
Paleta Standard.- Agrupa a un conjunto de objetos (ICONOS) que permiten realizar una tarea
determinada, para trabajar deben encontrarse en un Formulario.
Ref.: [email protected]
Ayudanta de Programacin II
7 8
9 10 11 12 13 14 15 16
PALETA STANDARD
1. Frame.2. Main Menu.- Men Principal.
3. Popup Men.- Men.
4. Label.- Etiqueta.
5. Edit.- Editar.
6. Men.- Men.
7. Button.- Botn.
8. Check Button.- Botn de Parada.
9. Radio Button.- Botn de Radio.
10. List Box.- Caja de Lista.
11. Combo Box.- Caja de Lista desplegable.
15
5 6
10 11 12 13 14
PALETA ADDITIONAL
1.
2.
3.
4.
5.
6.
7.
8.
Ref.: [email protected]
9.
10.
11.
12.
13.
14.
15.
10
Ayudanta de Programacin II
9 10 11 12 13 14 15 16 17 18
PALETA WIN32
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
PALETA SYSTEM
1.
2.
3.
4.
Timer.- Tiempo.
Paint Box.- Caja de Pintura.
Media Player.- Jugador de Medios Publicitarios
Ole Container.- Envase.
Ref.: [email protected]
5.
6.
7.
8.
11
Ayudanta de Programacin II
6.
7.
8.
9.
Session.- Sesin.
Batch Move.Up Date Sql.Nested Table.
10 11 12 13 14 15
Ref.: [email protected]
9.
10.
11.
12.
13.
14.
15.
12
Ayudanta de Programacin II
PALETA ADO
1.
2.
3.
4.
10 11
PALETA INTERBASE
1.
2.
3.
4.
5.
6.
Ref.: [email protected]
7.
8.
9.
10.
11.
13
Ayudanta de Programacin II
PALETA MIDAS
1.
2.
3.
4.
Ref.: [email protected]
6 7
14
Ayudanta de Programacin II
PALETA INTERNET
1.
2.
3.
4.
5.
6.
7.
8.
Query Table Producer.Data Set Table Producer.Data Set Page Producer.Web Browser.-
10 11 12
13 14 15
16 17 18
PALETA FASTNET
1.
2.
3.
4.
5.
6.
7.
8.
9.
NM Day Time.NM Msg.NM MSG Serv.NM Echo.NM FTP.NM HTTP.NM NNTP.NM Strm.NM Strm Serv.-
10.
11.
12.
13.
14.
15.
16.
17.
18.
Ref.: [email protected]
NM POP3.NM SMTP.NM Time.NM UDP.NM URL.NM UU Processor.NM Power Sock.NM General Server.NM Finger.-
15
Ayudanta de Programacin II
4 5
10 11 12 13 14 15 16 17 18 19 20 21 22 23
PALETA QReport
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Quick Rep.QR Sub Detail.QR Strings Band.QR Band.QR Child Band.QR Group.QR Label.QR DB Text.QR Expr.QR Sys Data.QR Memo.QR Expr Memo.-
Ref.: [email protected]
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
QR Rich Text.QR DB Rich Text.QR Shape.QR Image.QR DB Image.QR Composite Report.QR Preview.QR Text Filter.QR CSV Filter.QR HTML Filter.QR Chart.
16
Ayudanta de Programacin II
6.
7.
8.
9.
10.
4 5
10
PALETA DIALOGS
1 2
4 5
10
11
7.
8.
9.
10.
11.
Directory List Box.Drive Combo Box.Filter Combo Box.DB Look Up List.DB Look Up Combo.-
PALETA SAMPLES
1. Gauge.2. Color Grid.-
Ref.: [email protected]
17
Ayudanta de Programacin II
7. IB Event Alerter.-
PALETA Active X
1. Chart Fx.2. VS Spell.3. F1 Book.4. Vt Chart.-
Ref.: [email protected]
18
10
11
12
13
14
15
16
Word Application.Word Document.Word Font.Word Paragraph Format.Word Letter Content.Binder.Excel Query Table.Excel Application.-
9.
10.
11.
12.
13.
14.
15.
16.
17
18
19
20 21
Excel Cahrt.Excel Work Sheet.Excel Work Book.Excel OLE Object.Do Cmd.Access Hyper Link.Access Form.Access Report.-
22
23
24
25 26
Access Referentes.Power Point Application.Power Point Slide.Power Point Presentation.Out Look Application.Appoint Ment Item.Contact Item.Journal Item.-
25.
26.
27.
28.
29.
30.
31.
32.
Mail Item.Meeting Request Item.Note Item.Post Item.Remote Item.Report Item.Task Item.Task Request Item,-
27 28
29
30
31 32
Edit
SpeedButton
Botn 0 (Cero)
procedure TForm1.SpeedButton10Click(Sender: TObject);
begin
edit1.text:=edit1.text+'0';
end;
Botn 1 (Uno)
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
edit1.text:=edit1.text+'1';
end;
Botn 2 (Dos)
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
edit1.text:=edit1.text+'2';
end;
Botn 3 (Tres)
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
edit1.text:=edit1.text+'3';
end;
Botn 4 (Cuatro)
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
edit1.text:=edit1.text+'4';
end;
Botn 5 (Cinco)
procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
edit1.text:=edit1.text+'5';
end;
Botn 6 (Seis)
procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
edit1.text:=edit1.text+'6';
end;
Botn 7 (Siete)
procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
edit1.text:=edit1.text+'7';
end;
Botn 8 (Ocho)
procedure TForm1.SpeedButton8Click(Sender: TObject);
begin
edit1.text:=edit1.text+'8';
end;
Botn 9 (Nueve)
procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
edit1.text:=edit1.text+'9';
end;
Botn / (Divisin)
procedure TForm1.SpeedButton13Click(Sender: TObject);
var
codigo:integer;
begin
aux:=0;
val(edit1.text,aux,codigo);
edit1.text:='';
operador:='/';
end;
Botn * (Multiplicacin)
procedure TForm1.SpeedButton14Click(Sender: TObject);
var
codigo:integer;
begin
aux:=0;
val(edit1.text,aux,codigo);
edit1.text:='';
operador:='*';
end;
Botn - (Resta)
procedure TForm1.SpeedButton15Click(Sender: TObject);
var
codigo:integer;
begin
aux:=0;
val(edit1.text,aux,codigo);
edit1.text:='';
operador:='-';
end;
Botn + (Suma)
procedure TForm1.SpeedButton16Click(Sender: TObject);
var
codigo:integer;
begin
aux:=0;
val(edit1.text,aux,codigo);
edit1.text:='';
operador:='+';
end;
Botn = (Igual)
procedure TForm1.SpeedButton12Click(Sender: TObject);
var
rez,i,code:integer;
aux2:string;
begin
rez:=0;
aux2:=edit1.text;
val(aux2,i,code);
case Operador of
'*': rez:=aux * i;
'-': rez:=aux - i;
'/': rez:=aux div i;
'+': rez:=aux + i;
end;
str(rez,aux2);
edit1.Text:=aux2;
end;
Botn CE (Borrar Pantalla)
procedure TForm1.SpeedButton19Click(Sender: TObject);
begin
edit1.text:='';
aux:=0;
end;
Botn C (Borrar Pantalla)
procedure TForm1.SpeedButton20Click(Sender: TObject);
begin
edit1.text:='';
aux:=0;
end;
Botn Factorial S. (Factorial Simple)
end;
Botn Factorial R. (Factorial Recursivo)
procedure TForm1.SpeedButton17Click(Sender: TObject);
begin
end;
Botn Salir (Salir del Programa)
procedure TForm1.SpeedButton21Click(Sender: TObject);
begin
if messagedlg('Estas Seguro de Querer Salir',mtConfirmation,
[mbYes,mbNo],0)=mrYes then close;
end;
variables globales
var
{ form1.tform; }
aux: integer;
operador: char;
implementation