Dokumen - Tips - Manual de Delphi 7
Dokumen - Tips - Manual de Delphi 7
Entorno de Desarrollo
El entorno de desarrollo, también conocido como IDE, se muestra al
iniciar Delphi integrando todas las herramientas necesarias (Editor de
código, Editor de imágenes, Depurador, Herramientas de conexión a
bases de datos, fichas de componentes, etc.) para desarrollar
nuestras distintas aplicaciones. En la siguiente figura se muestra su
entorno.
2
2
2
2
2
2
2
2
2
Este fue un ejemplo inútil, pero es solo para ilustrar su manejo muy
simplemente, tu eres quien le darás una verdadera aplicación si tus
problemás lo requieren. Por lo pronto puedes experimentar
cambiando la asignación de compadre a False.
Tipos de Carácter . . . Los tipos de carácter están diseñados para
albergar caracteres según un cierto código numérico que usualmente
es el ANSI que mediante palabras de 8 bits representa hasta 256
caracteres. A continuación muestro su tabla.
2
2
Sentencias de control
Todo programa esta constituido por decisiones y acciones que se
ejecutan repetidamente en función del estado del programa y las
sentencias de control, son las que nos permiten hacer esas cosas.
Explicaré las más utilizadas.
Condicion If ... Then : Las condiciones If sin duda son unas de las más
utilizadas y permite condicionar la ejecución de un determinado
código al cumplirse una determinada condición. La sintaxis seria
como sigue:
If Condicion Then
Codigo1
Else
Codigo2
2
end;
Este es un ejemplo muy sencillo, genero un numero aleatorio de entre
4 dígitos incluyendo el cero, luego con el Case lo comparo hasta el
2
Repeat
Codigo
Until Condicion
La condición debe producir un resultado de tipo Booleano, cabe
mencionar que en este tipo de ciclos el código se ejecuta por lo
menos una vez debido a que la condición se realiza en la parte final
del ciclo.
While Condición Do
Codigo
Si el código es más de una instrucción se tendrá que poner entre un
Begin y un End. que no se te olvide. De este ciclo no pondré ejemplo
creo que tu puedes utilizar el código anterior y aplicarlo a este ciclo.
For ... Do : Nos permite repetir la ejecución de un determinado
código un numero definido de veces. La sintaxis es como sigue.
2
Mensajes en Delphi
Es verdaderamente útil poder interactuar con el usuario, decirle que
es lo que esta ocurriendo o dejarlo que tome decisiones. Esto en
parte podemos lograrlo con las ventanas o cuadros de mensaje, por si
no tienes una idea clara de que es lo que son pues son por ejemplo el
cuadro que te aparece en Word (u otra Aplicación) cuando no has
guardado tu trabajo preguntando si deseas guardarlo.
Delphi permite Los siguientes tipos de Mensajes.
• ShowMessage
• ShowMessagePos
• MessageDlg
• MessageDlgPos
• MessageBox
ShowMessage . . . Es el más sencillo de todos y ya lo hemos utilizado
en ejercicios anteriores. El cuadro parece por defecto centrado en la
pantalla, el titulo de la ventana es el nombre de la aplicación, el texto
del mensaje lo indicamos nosotros entre comillas simples y solo tiene
un botón. Ejemplo: ShowMessage('Quiubule Familia').
2
• mtIformation
• mtWarning
• mtError
• mtConfirmation
• mtCustom
• mbYes
• mbNo
• mbOk
• mbCancel
• mbAbort
• mbRetry
• mbIgnore
• mbAll
• mbHelp
Los tipos de botones que deseas debes ponerlos entre corchetes ([ ]),
y seguidos de una coma. O si lo prefieres Otra forma de hacerlo es
poner un serie de botones predefinidos, pero si lo haces no pongas
los corchetes. Los botones predefinidos son:
• mbYesNoCancel
• mbAbortRetryIgnore
• mbOkCancel
2
• mrNone
• mrAbort
• mrYes
• mrOk
• mrRetry
• mrNo
• mrCancel
• mrIgnore
• mrAll
El valor de la constante tiene el nombre del botón pulsado, de esa
forma en el ejemplo cuando es pulsado el botón mbYes, el valor
devuelto es mrYes.
2
Mb_IconAsterisk
Mb_IconError
Mb_IconExclamation
Mb_iconHand
Mb_IconInformation
Mb_IconQuestion
Mb_IconStop
Mb_IconWarning
Bueno creo que sobre mensajes seria todo. Ahora pasaremos a
explicar lo que estaban esperando las fichas de componentes
visuales. Finalmente verdad...
Ficha Standar
En esta ficha se encuentran los componentes más utilizados y es la
que esta activada cuando entramos a Delphi. Explicare únicamente
los principales.
Image Component
Descripción
n e
Es un componente no visual que permite
MainMenu diseñar el menú del formulario que si será
visual.
Permite diseñar Menús contextuales o
PopupMenu emergentes, que aparecerán al pulsar el
botón secundario del ratón.
Label Es un cuadro de texto estático, por lo tanto
visualiza texto pero no puede ser
2
2
2
Si te das cuenta en el Edit1 y Edit2 Guardamos los valores con los que
aremos una suma o resta según elija el usuario. El resultado lo
pegaremos en el Label6 en su propiedad Caption. Tanto el Edit como
el Label son de tipo String por lo que para hacer la operación es
necesario convertirlo por lo tanto los Edit los convierto a flotantes
mediante FloatToStr(). Ahora el resultado será un tipo de dato
flotante para asignárselo al Label que es de tipo String tengo que
convertirlo mediante la instrucción FloatToStr();
En lo que respecta al uso del ComboBox me sirve para que el usuario
elija el tipo de operación a realizar (Suma o Resta) yo previamente
definí Suma y Resta en el ComboBox. Cuidado si te fijas la primera
letra de Suma y Resta esta en mayúsculas si tu la escribes diferente
tendrás que modificar las comparaciones en el If.
Muy bien Ahora en el Evento Onclick del Button2 que dice Aplicar pon
este código.
2
Ficha Additional
Contiene componentes que amplían los componentes de la estándar
y que igualmente se utilizan frecuentemente. Explicare solo algunos
de ellos. De cualquier forma si sabes un poco de ingles puedes
consultar la ayuda de Delphi seleccionando la ficha y después
presionando F1.
2
2
MáskEdit1.Text := DateToStr(Date);
2
2
2
2
Dale Doble Click al primer botón que le pusimos Salir, con esto te
genera automáticamente el evento Onclick, puedes hacerlo de la otra
forma que tu ya sabes no importa. Bueno pon este código.
Application.Terminate;
Ahora en el Tercer botón que le pusimos Animación pondrás este otro
código.
PageControl1.ActivePageIndex := 0;
Como puedes ver las paginas del PageControl tienen un índice
empezando de cero así es que solo es cuestión de poner que pagina
es la que quieres activar.
En el ultimo Botón (Calendarios) pondrás este código.
PageControl1.ActivePageIndex := 1;
Muy bien ahora selecciona la pagina que dice Animacion del
PageControl. en el evento Onclick del Button Animar pondrás este
código.
Animate1.Active := True;
Por ultimo en el evento Onclick del botón Detener pon este código.
Animate1.Stop;
2
Ficha System
Contiene componentes que permiten acceder a algunos elementos
importantes del sistema, enseguida muestro la ficha.
2
2
Ahora viene lo interesante el código. Ojo el código va completo con
todo y los procedimientos que Delphi me genera en cada evento.
Esos procedimientos no se copian por que Delphi te los crea. Ok.
Ahora pon este código en el BitBtn1 al que le pusimos Abrir.
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if Opendialog1.Execute = True then
begin
MediaPlayer1.FileName := OpenDialog1.FileName;
MediaPlayer1.Open;
Mediaplayer1.DisplayRect :=
rect(0,0,OleContainer1.Width,OleContainer1.Height);
2
2
2
Como puedes ver es más código verdad, pues si pero es que para
reproducir el vídeo a pantalla completa tenemos que poner en False
la propiedad Visible de todos los componentes Visuales y de igual
forma ponerla en True cuando regrese a pantalla normal. Antes de
seguir con el código debes saber que he declarado dos variables de
tipo global para este formulario, las variables son Ancho y Alto, las
utilizo para almacenar el tamaño del Form al momento de
maximizarlo a pantalla completa y de esta forma cuando el usuario
regrese a pantalla normal utilizo el valor de esas variables para volver
el Form a su tamaño original.
Las variables Globales del Form las declaras en la cláusula Var del
Unit del Form. esta justo arriba de la cláusula Implementation. mira
para que te ubiques te muestro la parte en donde tienes que
declararlas. Ok.
var
Form1: TForm1;
Ancho : Integer; //Aqui estan declaradas
Alto : Integer;
implementation
{$R *.dfm}
Como ves están casi al inicio del Unit. Sí puedes encontrarlo y
declararlas verdad. yo se que si.
Muy bien prosiguiendo con la explicación, estoy utilizando una
llamada a GetKeySatate y Key para saber cuando se presionan las
teclas Alt y Enter(Checa su uso en la pagina de trucos). Ahora cuando
se presionan estas teclas resta saber en que estado se encuentra mi
formulario, en caso de que este normal lo maximizo en caso contrario
lo pongo en estado normal, Ahora esto se realiza checando la
propiedad WindowsState.
Cuando maximizo la ventana en las variables globales Ancho y Alto
guardo el valor de las propiedades Width y Height del Form mismás
2
Bases de Datos
Vaya por fin hemos llegado a una parte que tal vez estabas
esperando. Antes de empezar quiero adelantarles que durante los
capítulos siguientes haremos algunas bases de datos.
2
DataSource Realiza
las conexiones a las
bases de datos.
Permite el acceso a datos
tanto en una aplicación
ClientDataS estándar como el acceso
et
desde clientes en sistemás
distribuidos.
2
Ficha BDE
Esta ficha contiene componentes que habilitan la conexión a bases de
datos utilizando el BDE engine de Delphi.
2
Database DeskTop
Delphi nos permite crear bases de datos en tiempo de ejecución
mediante código, pero también nos brinda la posibilidad de crearlas
en tiempo de diseño mediante el Database Desktop. Esta
herramientas nos permite en realidad hacer otras cosillas, pero no
quiero adentrarme mucho en, solo quiero enseñarles lo básico para
continuar con este manual o curso.
2
Muy bien, antes de seguir quiero explicar que en Delphi se manejan
mucho los alias, los cuales son un identificador para un directorio o
carpeta en los cuales se tienen guardadas las bases de datos. Estos
alias son muy útiles ya que usualmente tienes que indicar la ruta en
dónde está tu tabla como por ejemplo c:\programa\Tablas, ahora el
detalle está que cuando pasas tu aplicación a otra unidad debes
cambiar la ruta a cada tabla y recompilar. todo eso se soluciona pues
utilizando alias, de hecho en los programás instaladores como el
Install Shield te permite crear el alias que en tu aplicación ayas
puesto, es útil de verdad. Solo que para estos ejercicios lo are de la
forma tradicional solo queria informarles que existe esa posibilidad,
por cierto en el alias DbDemos Delphi guarda algunas tablas de
ejemplo por si después quieres hecharles un ojillo primo.
Muy bien vete al menú que dice File, después al New y por ultimo
Table, de esta forma creamos nosotros una tabla, pero antes nos
presenta una pequeña ventana en la cual nos pide que elijamos que
tipo de dato crearemos, si va hacer paradox, foxpro, etc. te presento
esa venta.
2
Está la leyenda que dice Size la cual indica el tamaño del campo, eso
se lo indicamos tecleándolos directamente.
Por ultimo está la leyenda Key, sirve para indicar cuales campos
serán nuestras claves primarias. para elegir un campo como clave
primaria posicionate en Key y presiona la barra espaciadora, se
pondrá un asterisco en señal de que es clave primaria.
2
2
AfterDelete Se
genera después del borrado de un
registro
AfterEdit Se genera después de editar un registro
AfterInsert Después de Insertar
After Post Después de grabar los datos
BeforeCancelAntes de cancelar la operación
BeforeClose Antes de que se cierre la tabla
BeforeDelete Antes de borrar un registro
2
2
Ordenación de Registros . . .
Una vez que se ha definido un DataSet los registros que contiene se
encuentran ordenados por su índice activo y este índice queda
determinado por el valor de la propiedad IndexName del componente
TTable si no se especifica u índice secundario se tomara el índice
primario. Otra forma de ordenar la tabla es utilizando la propiedad
IndexFieldNames en la cual se pondrá el índice primario por el cual se
quiere ordenar. Los índices previamente se tuvieron que haber
declarado en la tabla. En tiempo de ejecución también se puede
cambiar el índice de ordenación, por ejemplo el código para ordenar
la tabla Inventario a través de su Clave primaria seria así.
Table1.IndexFieldNames := 'Clave';
Como puedes ver simplemente se le asigna el nombre del índice a la
propiedad IndexFieldNames. Es de igual forma para la propiedad
IndexName.
Búsquedas de Registros . . .
El componente Table proporciona una serie de herramientas para
realizar búsquedas de registros con la limitación de que solo se
2
ShowMessage('Producto no encontrado');
Else
Table1.FindNearest([Edit1.Text]);
Como puedes ver esto lo hice utilizando la instrucción FindNearest.
Aunque Ami en lo particular me gusta utilizar este método y cuando
necesito realizar una búsqueda por un campo que no es índice utilizo
el SQL pues... no le aunque les explicare el otro método existente
para busquedas.
2
DataSource
El componente table pertenece a un grupo de componentes que son
derivan del componente TDataset, estos componentes acceden por
diferentes caminos a los datos, por lo que la interfaz obtenida difiere
según el componente empleado. Para que los diferentes controles
que muestran los datos sean capaces de acceder a esta variedad de
interfaces pues se utiliza el DataSource el cual es un componente
intermedio el cual tiene la tarea de mostrar una interfaz común a
todos los controles.
La propiedad más importante del DataSource es DataSet en la cual se
pondrá la tabla que queremos ligar a el.
Controles Data-Aware
2
Componente DBGrid . . .
Nos sirve para visualizar información almacenada en una tabla, pero
aparte de eso podemos también realizar inserciones, ediciones,
modificaciones, etc. y cuenta con varias propiedades y métodos que
nos ofrecen una amplia gama de configuraciones tanto para el
aspecto como para el funcionamiento del control.
2
2
2
DBNAvigator . . .
Este control tiene incorporada las funcionalidades más comunes que
se realizan sobre una base de datos ya que con el podemos navegar
entre los registros, eliminar un registro, ponerlo en modo de edición,
insertar registros, etc. su propiedad más importante es la DataSource
en la cual se tiene que indicar el DataSource sobre el cual trabajara.
Describo los botones del navegador.
2