0% encontró este documento útil (0 votos)
81 vistas53 páginas

Dokumen - Tips - Manual de Delphi 7

El documento describe las características principales del entorno de desarrollo integrado (IDE) de Delphi. Explica que el IDE proporciona todas las herramientas necesarias para desarrollar aplicaciones, como un editor de código, editor de imágenes, depurador y fichas de componentes visuales. También describe los principales componentes del IDE como el menú principal, la barra de herramientas, el formulario de diseño y el inspector de objetos. Finalmente, resume los diferentes tipos de operadores como aritméticos, lógicos, relacional
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
81 vistas53 páginas

Dokumen - Tips - Manual de Delphi 7

El documento describe las características principales del entorno de desarrollo integrado (IDE) de Delphi. Explica que el IDE proporciona todas las herramientas necesarias para desarrollar aplicaciones, como un editor de código, editor de imágenes, depurador y fichas de componentes visuales. También describe los principales componentes del IDE como el menú principal, la barra de herramientas, el formulario de diseño y el inspector de objetos. Finalmente, resume los diferentes tipos de operadores como aritméticos, lógicos, relacional
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 53

 

Manual Básico Borland Delphi


7
 

Manual Delphi Ricardo E. Jasso Ponce

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.

Menú Principal . . . En él, Se puede realizar casi todo desde los


diferentes submenús como definir las opciones de compilación,
personalizar las fichas de componentes o agregar nuevas, guardar o
abrir proyectos, etc., es necesario revisarlo antes de comenzar.
Barra de Herramientas . . .   Esto es solo un conjunto de botones de
acceso rápido a las diferentes opciones del menú, lo cual nos facilita
ejecutar las acciones más utilizadas de una manera más rápida.
Dando un Click sobre ellas con el botón derecho del ratón podremos
configurarlas. A continuación muestro la función de alguno de ellos.

2
 

Manual Delphi Ricardo E. Jasso Ponce

Fichas de Componentes . . . Son las que dan Acceso a los


componentes que forman la biblioteca de componentes visuales
conocida también como VCL ( Visual Component Library) y se
encuentra dividida en varias categorías según las funciones que
realizan. Cada paleta incluye en su parte izquierda el botón puntero
que no es un componente sino que su función es parecida a la de
cualquier programa gráfico sirve para deseleccionar componentes
seleccionados, etc. Para insertar un componente en el formulario solo
selecciona el componente a insertar después pulsa sobre el
formulario y arrastra el ratón para definir su tamaño, en caso que no
lo arrastres Delphi automáticamente le pone su tamaño
predeterminado. Otra forma de insertar los componentes es dando
doble Clic sobre el componente a insertar en la ficha de
componentes.
Formulario o Form . . .  Es la pieza principal del diseño de las
aplicaciones, es el contenedor final de otros componentes que
finalmente constituirán nuestra aplicación. El formulario es un
componente más de Delphi por lo cual tiene propiedades y eventos
los cuales se pueden alterar y trabajar con ellos. Para aquellas
personas que emigran de lenguajes de programación lineal como C o
Clipper tengan en cuenta que ustedes utilizaran tantos formularios
como su aplicación los requiera.

2
 

Manual Delphi Ricardo E. Jasso Ponce

Inspector de Objetos u Object Inspector. Este nos permite modificar


las propiedades y respuestas a sucesos o eventos de los
componentes, sus datos muestran el estado del componente
seleccionado o del mismo formulario. Está dividido en dos partes en
forma de pestañas o solapas una que dice Properties y Events. A
continuación se muestra las propiedades del formulario.
Existen propiedades que tienen un signo de más, eso significa que
son contenedoras de otras opciones. A continuación se explican
algunas de las propiedades más comunes del formulario.

BorderIcons: Tiene cuatro opciones mismás que reciben un valor falso


o verdadero (True o False) de las cuales dos son muy útiles y
empezaremos por la de biMinimize, esta opción esta en True por
default y permite que nuestro formulario se pueda minimizar.

2
 

Manual Delphi Ricardo E. Jasso Ponce


biMaximize por default está en True y permite que nuestro formulario
se pueda maximizar en tiempo de ejecución.
BorderStyle: Despliega una lista con los diferentes estilos de bordes
para el formulario.
Caption: Esta es una propiedad importante debido a que es aquí en
donde escribimos el texto de la barra de titulo del formulario, es
alfanumérica y por default tendrá el nombre del formulario (Form1 en
este caso)..

Name: Es el nombre del componente, por Default aparecerá Form y el


numero de formulario, en este caso es Form1, este se puede
modificar y ponerle un nombre que nosotros queramos has de cuenta
que el formulario es una variable y la propiedad Name tiene el
nombre de esa variable.

Position: Despliega una lista en la cual muestra las diferentes


posiciones sobre las cuales podemos mostrar nuestro formulario al
momento de correrlo.
WindowsSatate: Despliega una lista de valores WsNormal,
WsMinimized, WsMaximized, las cuales alteran nuestro formulario al
momento de correrlo es decir si elegimos la de WsMaximized
mostrara maximizado nuestro formulario.
Para dimensionar nuestro formulario basta con alterar las
propiedades Height y Width aunque también se puede realizar
posicionando sobre los bordes del formulario el puntero del ratón y
arrastrarlo hasta lograr la dimensión que queramos.
Nota: Existen Propiedades que son iguales para varios componentes
como Caption, Font, Visible, etc.
Ahora mostraré los eventos del formulario.

Los eventos son sucesos que detecta nuestro formulario y según el


suceso detectado se ejecuta su código, existen varios eventos,
explicaré solo algunos, de cualquier forma durante el curso se
explicarán más. Para introducir el código basta con dar doble Click en
la parte derecha del evento a utilizar y Delphi automáticamente nos
crea el procedimiento de dicho evento y nos muestra el editor de
código.

2
 

Manual Delphi Ricardo E. Jasso Ponce

Operadores Lógicos y Aritméticos


Operadores Aritméticos. . . .  Permite realizar todo tipo de operaciones
comunes con operadores numéricos ya sean reales o enteros, en la
siguiente tabla se muestran los tipos de datos.

Operad Operación Tipo  Tipo


or Operando Resultado
Suma Integer Integer
+ Real Real
Resta Integer Integer
- Real Real
Multiplicació Integer Integer
* n Real Real
/ División Integer Integer
Real Real
Div División Integer Integer
entera
Mod Resto Integer Integer

Operadores Lógicos. . . Se dividen en dos categorías los lógicos y los


booleanos. La diferencia está en que las operaciones lógicas llevan la
comparación de valores a nivel de bit y las operaciones booleanas
realizan comparaciones verificando si una cierta expresión es
verdadera o falsa. En la siguiente tabla se presentan las operaciones
lógicas.

Operador Operación Tipo Operando Tipo Resultado

2
 

Manual Delphi Ricardo E. Jasso Ponce


Not Negación a nivel Integer Integer
de Bit.
And Producto a nivel Integer Integer
de Bit.
Or Suma a nivel de Integer Integer
Bit.
Xor Or Exclusiva a Integer Integer
nivel de Bit.
Shl Desplazamiento Integer Integer
bit a bit hacia la
izquierda.
Shr Desplazamiento Integer Integer
bit a bit hacia la
derecha.

La siguiente tabla muestra los operadores booleanos.

Operad Operació Tipo Tipo


or n Operand Resultad
o o
Not Negación. Boolean Boolean
And Producto Boolean Boolean
lógico.
Or Suma Boolean Boolean
lógica.
Xor Or Boolean Boolean
Exclusiva
lógica.

Operadores Relaciónales. . . Los utilizamos para realizar


comparaciones entre dos valores y a continuación se muestran en la
siguiente tabla.

Operador Operación Tipo


Resultado
= Igualdad. Boolean
<> Desigualdad. Boolean

2
 

Manual Delphi Ricardo E. Jasso Ponce


< Menor que. Boolean
> Mayor que. Boolean
<= Menor o Igual Boolean
que.
>= Mayor o Igual Boolean
que.

Precedencia de Operadores. . .  Cuando se evalúa una expresión en la


que aparecen combinados diferentes operadores, las operaciones que
representan se ejecutan en cierto orden que están marcados por la
precedencia de los operadores. A continuación se muestra una tabla
con su precedencia.

Operador Precedencia Categoría

@ , Not Primera Operadores


Unarios
* , / , Div , Segunda Operadores de
Mod , And , Multiplicación
Shl , Shr ,
As
+ , - , Or ,  Tercera Operadores de
Xor Adición
=, <> , < , Cuarta Operadores
> , <= , >= Relacionales

Existen cuatro reglas de precedencia que se deben de tomar en


cuenta:

• Las expresiones encerradas entre paréntesis se evalúan antes


de tratarlas como un único operando. Lo que significa que
primero se evalúa lo que está dentro del paréntesis por
ejemplo la siguiente operación valor:= 10 + (3*3); primero
multiplica 3*3 y su resultado lo suma con el 10.
• Un operador unario siempre precede al operador binario, por
ejemplo -5 * 10 es lo mismo que tuviéramos (-5) * 10.
• Un operador que se encuentra entre dos operadores de
precedencias diferentes se relaciona con el operador de
precedencia mayor, por ejemplo valor:= 5 * 3 + 10; en este
caso primero se multiplica y después se suma.
• Un operando que se encuentra entre dos operadores iguales se
relaciona con el de su izquierda. Por ejemplo si se tuviera
valor := 5 + 3 + 6; es lo mismo que valor := (5 + 3) + 6;

2
 

Manual Delphi Ricardo E. Jasso Ponce

Declaración de Variables y Constantes


CONSTANTES. . . Se utilizan para representar lógicamente un valor
que será utilizado repetidamente en nuestro programa y que no
variará durante su ejecución. Para su declaración se utiliza la palabra
reservada Const. Por ejemplo continuación declararé la constante PI
= 3.14 y nombre ='Pablo ' en el evento Oncreate del formulario.

procedure TForm1.FormCreate(Sender: TObject);


const
PI = 3.14;
nombre = 'Pablo ';
begin
ShowMessage(nombre+FloatToStr(PI));
end;

Si declaras constantes o variables dentro de algún procedimiento,


irían entre el Procedure y el Begin. Como puedes ver utilizamos
nuevamente la función ShowMesage () la cual me permite mandar un
mensaje sencillo al usuario pero bueno se explicará más adelante en
mensajes. De igual forma utilizo la función FloatToStr () la cual me
permite convertir valores de tipo flotante a cadena.

Variables. . . Una variable es un valor perteneciente a un cierto


dominio y puede variar durante la ejecución del programa. En Delphi
las Variables se declaran con la palabra reservada Var. Por ejemplo
realizaremos la misma función que las constantes pero ahora
utilizando variables y el código quedaría así:

procedure TForm1.FormCreate(Sender: TObject);


var
PI : Real;
nombre : String;
begin
PI := 3.14;
nombre := 'Pablo ';
ShowMessage(nombre + FloatToStr(PI));
end;
 
NOTA: En Delphi las Asignaciones se realizan mediante:= como
puedes observar.

Bien ya vimos como declarar constantes y variables ahora es


necesario ver los tipos de datos soportados por Delphi.

2
 

Manual Delphi Ricardo E. Jasso Ponce


Delphi Soporta tipos de datos simples y tipos de datos compuestos
pero por ahora nos enfocaremos a los simples.
  Tipos Enteros . . . Son aquellos que representan números no
decimales dentro de un rango y existen diferentes tipos de enteros
clasificados según su rango. A continuación muestro una tabla con los
tipos de datos enteros.
 Tipo Rango de Valores Formato
Byte 0 .. 25 8 bits sin signo
Word 0 .. 65535 16 bits sin signo
LongWord 0 .. 4294967295 32 bits sin signo
ShortInt -128 .. 127 8 bits con signo
SmallInt -32768 .. 32767 16 bits con signo
-2147483648 ..
LongInt 2147483648 32 bits con signo
Int64 -2Exp63 .. 2Exp63-1 64 bits con signo
-2147483648 ..
Integer 32 bits con signo
2147483648
Cardinal 0 .. 214 7483648 32 bits sin signo
Por defecto las operaciones aritméticas con valores enteros
devolverán un valor entero, hay que tener cuidado por que una
variable de tipo entera no puede almacenar un dato de tipo real, más
sin embargo una variable de tipo real si puede recibir un dato entero.
 Tipos Reales . . . Son adecuados para variables que albergan valores
con una parte decimal, a continuación muestro una tabla con los
diferentes tipos reales soportados por Object Pascal.
Dígitos  Tamaño
 Tipo Rango de valores Significati en Bytes
vos
Single ±
1.5 * 10Exp-45 .. ± 3.4 *7-8
4
10Exp38
Real48 ±
2.9 * 10Exp-39 .. ± 1.7 *11-12
6
10Exp38
Real ±
5.0 * 10Exp-324 .. ± 1.7 *15-16 8
10Exp308
Double ±
5.0 * 10Exp-324 .. ± 1.7 *15-16 8
10Exp308
Extend ± 3.4 * 10Exp-4932 .. ± 1.119-20 10
ed * 10Exp4392
Comp -2Exp63 .. 2Exp63 -1 19-20 8
Curren -9223372036854775808 ..19-20
8
cy 9223372036854775807

2
 

Manual Delphi Ricardo E. Jasso Ponce


La declaración de variables reales utiliza exactamente la misma
sintaxis que la explicada para los números enteros. De hecho en el
ejemplo anterior se declaro una variable de tipo Real.
  Tipos Booleanos . . . Este es un tipo de dato muy sencillo pero
igualmente utilizado, representan cantidades lógicas como verdadero
o falso y en el Object Pascal existen cuatro que son: Boolean,
ByteBool, WordBool y LongBool. El que se recomienda más es el tipo
Boolean debido a que utiliza menos memoria, las otras existen para
permitir la compatibilidad con otros lenguajes y el entorno de
Windows. Bueno a continuación te muestro su tabla.
Memoria
Tipo Requerida en
bytes
Boolean 1 (Recomendado)
ByteBoolean 1
WordBool 2
LongBool 4

Se declaran como cualquier otra variable solo que el valor que


pueden recibir es True o False. Ejemplo. Este código se puso en el
evento Oncreate del Formulario Ok.
procedure TForm1.FormCreate(Sender: TObject);
var
Compadre : Boolean;
begin
Compadre := True;
If Compadre = True then
ShowMessage('Tu si eres mi compadre')
Else
ShowMEssage('Tu no eres mi compadre');
end;
 

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.

 Tipo Carácter que Memoria requerida


contiene en Bytes
AnsiChar Un Caracter Ansi 1

2
 

Manual Delphi Ricardo E. Jasso Ponce


WideChar Un Caracter Unicode 2
Char Un Caracter Ansi 1

  Tipos Cadena de Caracteres . . . También conocidos como String.


Estas existen como tipos predefinidos que albergan la concatenación
de un determinado número de caracteres bueno es algo parecido a
los arrays si así lo quieren ver. En seguida muestro la tabla con los
diferentes tipos.
Carácter
 Tipo que Longitud Máxima Memoria
contiene
AnsiStrin ~2Exp31
g AnsiChar Caracteres
Hasta GB.
ShortStri AnsiChar 255 Caracteres
ng 2 a 256 Bytes.
~2Exp31
String AnsiChar Caracteres
256 hasta 2GB.
WideStri WideCha ~2Exp30
Hasta 2GB.
ng r Caracteres

 Te pongo un ejemplo para explicar su uso.


procedure TForm1.FormCreate(Sender: TObject);
var
Nombre, Apellido : String;
begin
Nombre := 'Pablo ';
Apellido := 'Bustos';
Nombre := Nombre + Apellido;
ShowMessage(Nombre);
end;
 
Nota: a diferencia de C y otros lenguajes, en Delphi las
concatenaciones se hacen con el signo +; las asignaciones se hacen
normalmente, únicamente utilizan las comillas simples (') para
indicarle que se trata de una cadena. Como anteriormente se
mencionó estas variables son parecidas a los arrays y podríamos
accesar directamente a alguna posición de la variable por ejemplo si
a la variable Nombre únicamente quisiera concatenarle la letra B de
la Variable Apellido lo haría de la siguiente forma: Nombre := Nombre
+ Apellido[1]. Como puedes ver a diferencia de C el inicio de
posiciones comienza en 1 y no en 0. Ok.
Existe la instrucción Array perteneciente a los datos compuestos, la
cual permite declarar arreglos de una o varias dimensiones

2
 

Manual Delphi Ricardo E. Jasso Ponce

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

Codigo1, se ejecutará cuando la condición se cumple y Codigo2


cuando la condición no se cumple. Pueden anidarse tantas
sentencias if como necesites.
Cuando los códigos a ejecutar tanto para el Else como para el IF son
más de una instrucción se deben de poner entre un Begin y un End.
Para que quede más claro haremos un ejercicio más practico, el
código irá en el evento Oncreate del Form. Se preguntarán por que
utilizo ese evento bueno pues por que todavía no les enseño como
funcionan otros componentes.
procedure TForm1.FormCreate(Sender: TObject);
var numero : Integer;
begin
Randomize();
numero := random(20);
if numero > 10 Then
begin
numero := numero * numero;
ShowMessage('Es mayor, al cuadrado es: ' + IntToStr(numero));
end

2
 

Manual Delphi Ricardo E. Jasso Ponce


Else
begin
numero := numero * numero;
ShowMessage('Es menor, al cuadrado es: ' + IntToStr(numero));
end;
end;
 
Nota: En el ejemplo declaro una variable de tipo entero después
utilizo la función Randomize() la cual inicializa el motor de generación
de números aleatorios luego asigno a numero el resultado que
devuelva random(20) la cual es una función que devuelve un valor
aleatorio entre un rango previamente especificado que en este caso
es un 20. Este ejemplo es muy sencillo lo que hace es generar un
numero aleatorio lo compara y si es mayor que diez manda un
mensaje diciendo que es mayor y mostrando su cuadrado y en caso
de que sea menor hace casi lo mismo solo que indica que es menor.

Case ... OF : Permite comparar una variable o expresión con un


conjunto predeterminado de valores y ejecutar un código
determinado de acuerdo al resultado de la comparación o expresión.
Aquí tienes su sintaxis.

Case Expresion Of 


Lista de constantes separadas por comás : Codigo;
Valor Inicial .. Valor final : Codigo2;
Else
Codigo por Defecto;

Hay va un ejemplo para que quede más claro Ok.


procedure TForm1.FormCreate(Sender: TObject);
var numero : Word;
begin
Randomize();
numero := Random(4);
Case numero Of 
0: ShowMessage('El numero es un Cero');
1: ShowMessage('El numero es un Uno');
2: ShowMessage('El numero es un Dos');
else
ShowMessage('El numero es mayor que dos');
end;

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
 

Manual Delphi Ricardo E. Jasso Ponce


numero dos dejando un mensaje en el else para cuando el numero
sea mayor que dos.
Bueno creo que ha llegado la hora de explicar los ciclos o bucles así 
que empezaremos.
Repeat Until : Permite ejecutar un determinado código hasta que se
satisfaga una cierta condición, su sintaxis es de la siguiente forma:

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.

Les pondré un sencillo ejemplo pero ahora utilizaremos el evento


OnClick del Form.

procedure TForm1.FormClick(Sender: TObject);


var numero, suma : Integer;
begin
numero := 1;
suma := 0;
repeat
suma := suma + numero;
inc(numero);
until numero = 10;
ShowMessage(IntToStr(suma));
end;
 

While ... Do : Es parecido al anterior solo que la verificación del ciclo


se realiza al inicio. Aquí tienes su sintaxis.

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
 

Manual Delphi Ricardo E. Jasso Ponce


For Variable := Valor Inicial To/Downto Valor Final Do
Codigo
El Downto es para realizar ciclos en decremento y el To en
incremento. así que si quieres sumar los números del 1 al 100 seria:
procedure TForm1.FormClick(Sender: TObject);
var numero, suma: Integer;
begin
suma :=0;
For numero := 1 To 100 Do
suma := suma + numero;
ShowMessage(IntToStr(suma));
end;

Con esto hemos concluido una parte que es fundamental conocer


para el manejo de Delphi, como lo es su entorno de desarrollo,
declaración de constantes, variables y sus sentencias de control. Así 
que de aquí en adelante nos dedicaremos a ver cosas mucho más
interesantes, explotaremos la potencialidad de Delphi y
empezaremos por ver los tipos de mensajes que Delphi permite
realizar.

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
 

Manual Delphi Ricardo E. Jasso Ponce


ShowMessagePos . . . Es Parecido al anterior pero tiene dos valores
más que indican las coordenadas donde se mostrara el cuadro
indicando primero el ancho y luego el largo. Debes tener cuidado
pues la posición se debe poner en Pixeles por lo tanto debes sabe el
tamaño de tu pantalla, esto lo logras haciendo una pequeña llamada
al Objeto TScreen.Width obtienesel ancho y con Screen.Height el
Largo. Bueno como ejemplo podrías poner en el evento Onclick de tu
formulario el siguiente código:

ShowMessagePos ('Utilizando Coordenadas', Screen.Width div


3,Screen.Height div 3);

MessageDlg . . . Hasta ahora los tipos anteriores de mensajes no


dejan que el usuario pues pueda tomar alguna decisión o algo por el
estilo verdad, así que el tipo de mensaje MessageDlg nos
proporciona esa posibilidad. Los valores que recibe son primeramente
el texto que queremos mostrar, el tipo de cuadro que mostraremos
según una lista predefinida por Windows, los botones que se
mostraran y la ayuda de la aplicación que creemos si es que
colocamos un botón de ayuda en el cuadro. Bien ahora les mostrare
la lista de cuadros predefinidos por Windows.

• mtIformation
• mtWarning
• mtError
• mtConfirmation
• mtCustom

Por cada tipo de cuadro windows automáticamente te mostrara una


imagen relacionada al cuadro elegido. Ahora es necesario saber
cuales son los tipos de botones que podemos utilizar.

• 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
 

Manual Delphi Ricardo E. Jasso Ponce


Bien ahora pondré un ejemplo de como utilizarlo, pon el siguiente
código en el evento Onclick de tu Formulario.
 

If MessageDlg ('¿Estas Aprendiendo?', mtConfirmation ,


[mbyes,mbno],0) = mrYes Then ShowMessage ('Que bueno, entonces
vamos bien')
else
ShowMessage ('Hay jode, pos estúdiale más');

Si pusiste atención te pudiste haber dado cuenta que MessageDlg


devuelve el valor del botón pulsado por el usuario. El valor devuelto
puede tomar los siguientes valores:

• 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.

MessageDlgPos . . . Esta es una variante de la función MessageDlg,


funciona exactamente igual solo que se le tienen que pasar las
coordenadas de donde queremos que aparezca el cuadro de mensaje.
Ejemplo
If MessageDlgPos ('¿Estas Aprendiendo?', mtConfirmation ,
[mbyes,mbno],0,Screen.Width,Screen.Height) = mrYes Then
ShowMessage ('Que bueno, entonces vamos bien')
else
ShowMessage ('Hay jode, pos estúdiale más');
 
MessageBox . . . Es un tipo de mensaje que hace llamada a la Api de
Windows sacándonos el titulo de los botones en español, claro si
nuestro Windows esta en español. No adentrare mucho en esto así 
que pondré un ejemplo de su uso.

if Application.MessageBox('QUIERES SALIR DEL


PROGRAMA ?','SALIR',MB_OKCANCEL+MB_ICONQUESTION)=IDOK 
then
Application.Terminate;
 

2
 

Manual Delphi Ricardo E. Jasso Ponce


En este caso también se controla el tipo de botón a poner y las
combinaciones de las imágenes que pone Windows por defecto te las
listo continuación. Los tipos de botones a poner ya se listaron
anteriormente.

 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.

Nota: Realizare algunos ejercicios durante el transcurso de la


explicación.
Ficha Standar.

Empezaremos a partir del segundo componente.

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
 

Manual Delphi Ricardo E. Jasso Ponce


modificado.
Es un cuadro de Edición de Texto que
Edit permite visualizar y modificar una línea de
texto.
Es un Cuadro de Texto multilinea, se puede
Memo visualizar y modificar varias líneas de texto.
Es parecido al Bloc de Notas
Es un Botton clásico de cualquier aplicación
Button Windows, no lleva ninguna imagen solo
texto.
ChechBox Es una casilla de verificación que permite
seleccionar y deseleccionar opciones.
Botón de opción parecido al CheckBox, se
RadioButto utiliza para seleccionar dentro de un
n conjunto de RadioButton u opciones
solamente uno de ellos.
Es una lista Standard de Windows en la que
ListBox el usuario puede seleccionar un elemento
de la lista.
Lista desplegable que combina las
características de un ListBox y un Edit
ComboBox permitiendo al usuario seleccionar un
elemento.
ScrollBar Barra de desplazamiento estándar.
GroupBox Funciona como contenedor de objetos,
permitiendo agrupar diferentes controles.
RadioGroup Es
un contenedor exclusivamente para los
RadioButtons.
Panel Contenedor de objetos pero más potente
que el GroupBox.

Bueno ahora vamos a lo bueno aremos un ejercicio utilizando algunos


componentes explicados. así es que arranca Delphi o crea una nueva
Aplicación.
Coloca un GroupBox en tu formulario, Dentro de el coloca dos
etiquetas mismás que en su propiedad Caption les pondras Valor uno
y Valor dos. Después pon dos Edit ve a su propiedad Text y quítales el
texto que tienen por defaul. Deben de ir un Edit abajo de cada Label.
Selecciona el Componente GroupBox y en su propiedad Caption
Coloca el texto Valores. Todo el GroupBox y su componentes cárgalos
hacia tu parte superior izquierda.
Ahora en tu parte superior derecha pega un componente Label y en
su propiedad Caption le pondrás Operación, Después coloca un
componente ComboBox debajo del Label. Te vas a la propiedad Text
del comboBox y Escribes el texto Suma. después ve a la propiedad
Items y dale Click donde dice String. te saldra una ventana en la cual

2
 

Manual Delphi Ricardo E. Jasso Ponce


escribirás los textos Suma, Resta en líneas o filas separadas. y das Ok
a la ventana.

Después coloca debajo del ComboBox un componente Button y en su


propiedad Caption pon Calcular. Ahora coloca un componente Panel
debajo del Componente Button. dentro del panel pon un componente
Label que por cierto si has seguido mis instrucciones será el Label6 y
de hecho debe de ser el seis por que lo utilizaremos para pegar el
resultado de una operación.

Muy bien ahora pon un componente RadioGroup en la parte inferior


izquierda, en su propiedad Caption pon color de ventana. Después
dentro de el coloca dos RadioButtons al primero en su propiedad
Caption Pon el texto Azul, y al segundo ponle Normal.
Ahora pon un Componente Button al costado derecho del RadioGroup.
y pon en su propiedad Caption Aplicar.

Pon un componente MainMenu, Dale doble Click. te saldra una


ventana en la cual se irán viendo las opciones del menú que bayas
poniendo en su propiedad Caption. Ahora vete a la propiedad Caption
y escribe &Principal (El Amperson indica la tecla caliente), da enter y
ahora te aparecerá principal en la ventana que estará a tu derecha,
en esa ventana debajo de la leyenda Principal habrá un campo en
blanco selecciona con el ratón, después vete a la propiedad Caption y
escribe &Salir. Ahora da click sobre el formulario para regresar a el.

Ahora el diseño quedaría como sigue

2
 

Manual Delphi Ricardo E. Jasso Ponce


Ahora vamos con el código. Vete al evento Onclick del Button1 que
dice Calcular. dentro del pondremos el siguiente código:
if ComboBox1.Text = 'Suma' Then
Begin
Label6.Caption := FloatToStr(StrToFloat(Edit1.Text) +
StrToFloat(Edit2.Text));
End;

if ComboBox1.Text = 'Resta' Then


Begin
Label6.Caption := FloatToStr(StrToFloat(Edit1.Text) -
StrToFloat(Edit2.Text));
End;
 

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.

if RaDioButton1.Checked = True then


Form1.Color := ClBlue
else
Form1.Color := clBtnFace;
 
Como puedes ver la propiedad Checked me indica si un RadioButton
esta o no Activado. Y dependiendo de eso modifico el color del Form.

Ahora vete al menú desplegable y dale Click en la opción Salir de esta


forma Delphi te creara el procedimiento Tform1.Salir1Click en el cual
pondrás este código.
Application.Terminate;

2
 

Manual Delphi Ricardo E. Jasso Ponce


Esta instrucción permite terminar correctamente la aplicación y
devolver la memoria a Windows.

Ahora solo corre el programa con F9 y listo. Experimenta con él.

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.

Imagen Componen Descripción


te

2
 

Manual Delphi Ricardo E. Jasso Ponce


Es un Botton que se le puede añadir un
BitBtn gráfico Bitmap. Contiene la propiedad
Kind que trae una lista de botones
predefinidos con sus Bitmap.
Es un botón utilizado en las barras de
herramientas, se le puede agregar un
SpeedButt Bitmap y trae la propiedad Flat que
on permite dar una apariencia de boton
plano.
Se utiliza para validar la entrada de
MáskEdit datos mediante el formateo del texto
como lo es la fecha, etc.
Permite mostrar gráficos como
Image Bitmaps, iconos, Windows Metafiles,
etc.
Shape Permite dibujar polígonos, círculos y
líneas.
Bevel Es un rectángulo en 3D.
Define un área contenedora mayor al
ScrollBox área
visualizada, automáticamente al
sobrepasar el área salen las barras
deslizadoras.
Es un ListBox solo que añade un
CheckList CheckBox para cada elemento de la
Box
lista.
Sirve para definir áreas modificables
Splitter por parte del usuario.
Es similar a Label, solo que tiene más
StaticText propiedades modificables.
ControlBar Se utiliza para crear barras de
Herramientas acoplables.
Chart Util para crear diferentes tipos de
gráficos.
Bueno ahora es el momento de realizar algún ejercicio en donde
utilicemos algunos componentes descritos.
Crea una nueva aplicación, al Caption del formulario ponle Ficha
Addiotional, en el formulario por un componente StaticText, en la
Propiedad Caption pon Fecha, la propiedad BorderStyle ponla en
sbsSunken.

Coloca un componente MáskEdit, Da un Click sobre él con el botón


secundario del ratón, te saldrá un menú desplegable elige la opción
Input Másk Editor ( Esto también lo puedes realizar en la propiedad
EditMásk), te saldrá una venta con máscaras predefinidas. Elige la
que dice Date, si quieres la fecha en formato MM/DD/AA, esta un
botón que dice Másks, dale click y vete al directorio Bin de Delphi y

2
 

Manual Delphi Ricardo E. Jasso Ponce


elige el archivo Spain. Ahora ya que seleccionaste Date. solo dale Ok.
y listo tienes tu máscara para la fecha.
Ahora Pon este código en el evento OnCreate de tu Form.

MáskEdit1.Text := DateToStr(Date);

La función que devuelve la hora del sistema es Date y el valor


devuelto es de tipo fecha así que se tiene que convertir a String para
pegarse en el MáskEdit.

Muy bien ahora coloca un componente Shape en el Form, ve a la


propiedad Shape y Elige la opcion StCircle. Despues ve a la propiedad
Brush, presenta dos opciones elige la opción Colors y elige el color
ClLime.

Despues de esto coloca un BitBtn a un costado del componente


Shape. ve a la propiedad que dice Glyph y dale Click a su derecha. te
presentara una ventana en la cual te permitirá buscar y agregar una
imagen al boton asi que dale click a la opción Load y ve al directorio
images\buttons de Delphi, en este directorio tendras una serie de
gráficos que Delphi te instala, bueno elige la imagen Group. Una vez
agregada la imagen ve a la propiedad Caption y Ponle Color.
Coloca un SpeedButton en el formulario, en la propiedad Caption
ponle figura, ve a la propiedad Glyph y ponle la imagen Form.
Recuerda para ponerle la imagen es igual que cuando se la pusiste al
BitBtn. Bien ahora ya con la imagen puesta ve a la propiedad Flat y
ponla en True.
Ahora coloca un componente Image, su propiedad Align ponla en
AlClient. con esto la imagen ocupara todo el formulario. Ve a la
propiedad Picture y dale click a su derecha, de igual forma como en
los botones agregamos una imagen haz lo mismo solo que ahora ve al
directorio Images\Backgrnd y elige la imagen Writing.

Ahora te muestro como quedaría la parte visual del formulario.

2
 

Manual Delphi Ricardo E. Jasso Ponce


Ahora en el Evento Onclick del BitBtn se pondría:

procedure TForm1.BitBtn1Click(Sender: TObject);


var numero : Word;
begin
Randomize();
numero := Random(3);
if numero = 0 then
Shape1.Brush.Color := ClBlue;
if numero = 1 then
Shape1.Brush.Color := ClBlack;
if numero = 2 then
Shape1.Brush.Color := ClYellow;
if numero = 3 then
Shape1.Brush.Color := ClLime;
end;
 

Con este código generamos un numero aleatorio de entre cuatro


números incluyendo el cero, y según el resultado estamos cambiando
de color al Shape.
Pon en el SpeedButton este codigo.
procedure TForm1.SpeedButton1Click(Sender: TObject);
var numero : Word;
begin
randomize();
numero := random(5);
if numero = 0 then
Shape1.Shape := StCircle;
if numero = 1 then
Shape1.Shape := StEllipse;
if numero = 2 then
Shape1.Shape := StRectangle;
if numero = 3 then
Shape1.Shape := StRoundRect;
if numero = 4 then
Shape1.Shape := StRoundSquare;
if numero = 5 then
Shape1.Shape := StSquare;
end;

Estamos generando aleatoriamente 6 posibles datos (0-5) mismos


que utilizamos como constantes para cada una de las formás del
Shape. Bueno con esto hemos concluido este pequeñísimo ejercicio.
Por ahora estamos haciendo cosas muy simples les prometo que
posteriormente aremos algo más complicado mientras tanto
pasaremos a la siguiente ficha.

2
 

Manual Delphi Ricardo E. Jasso Ponce


Ficha Win32
Contiene componentes que permiten la creación de aplicaciones que
cumplen con las especificaciones de Windows 95 o superior. A
continuación se muestra.

Imagen Componente Descripción


Crea solapas para cuadros de dialogo
 TabControl multipágina.
Crea una área multipágina, en donde
PageControl cada pagina es accesible desde las
mismás solapas del componente.
Define una matriz de imágenes del
ImageList mismo tamaño mismás que son
accesibles a través de su índice.
Es una caja de texto que acepta el
formato de texto enriquecido, por lo
RichEdit tanto a nivel de palabra se le puede
modificar el tamaño, color, etc.
Es una barra de desplazamiento de
 TrackBar Windows, que nos permite desplazar
el control por un conjunto de valores.
Es una barra de progreso estándar
ProgresBar que nos indica el avance de un
determinado proceso.
Muestra secuencias de BitMaps o
Animate Archivos Avi sin sonido.
Despliega fechas y permite
DateTimePicker seleccionarlas, también permite
introducirlas.
Nos presenta el calendario por
MonthCalendar meses.
Es una barra de estado clásica de
StatusBar Windows.
Permite crear una barra de
 ToolBar
Herramientas.
Es un contenedor de Barras de
CoolBar herramientas mismás que pueden ser
configurables por el usuario

Bueno es tiempo de hacer un ejemplo de su uso así que realiza lo


siguiente:

2
 

Manual Delphi Ricardo E. Jasso Ponce


Crea una nueva aplicación, al caption del form ponle Ficha Win32,
coloca un componente Image list en el form, dale doble Click al
componente, te saldrá una ventana en la cual podrás agregar
imágenes, dale al botón que dice Add, vete a la carpeta
Images/Buttons de Delphi, y agrega el archivo que dice DoorOpen,
después que lo abres, regresas a la ventana anterior y te mandara un
mensaje en ingles que dice la dimensión de la imagen es demásiado
grande y pregunta si la divide en dos, dale que si, te pondrá dos
imágenes, hay un botón que dice Delete, borra la segunda imagen
con ese botón. Ok. Ahora así como agregaste esta imagen quiero que
agregues dos más, bueno la imagen del botón te la dejo a tu gusto
Ok. el caso que te tienen que quedar tres imágenes enumeradas del 0
al 2. Después de agregar las imágenes solo da click al botón de OK.
Coloca un componente ToolBar, en su propiedad Caption Ponle
Herramientas, Vete a la propiedad ImageList y selecciona el texto
ImageList1 (Es el componente de imágenes que creamos). Ahora dale
Click al Componente con el botón secundario del ratón y te saldrá un
menú emergente, selecciona la opción New Button, con esto te crea
un botón en en el componente ToolBar. Ok. Ahora vete a la propiedad
Hint del botón que acabas de crear y ponle Salir, ve a la propiedad
ShowHint y ponla en True. Ok. Después ve a la propiedad ImageIndex
y ponle 0 (A este botón le pondremos la imagen que este en el índice
0). Ahora nuevamente con el botón secundario del ratón dale click al
 ToolBar y ahora eliges la opcion NewSeparator, con esto te crea un
botón separador, a este botón no le haremos nada Ok. De igual forma
como creaste el primer botón crea dos más y en su Hint pondrás
Animación, calendario, en la propiedad ImageIndex pon 1 y 2
respectivamente. Con eso tendremos nuestra barra de herramientas.

Ahora coloca un componente PageControl, Dale click al componente


con el botón secundario del ratón, en el menú emergente selecciona
New Page, con esto te a creado una nueva pagina, ahora vete a la
propiedad Caption y ponle Animación. Ahora si sobre esa nueva
pagina pegaras un componente Animate, vete a la propiedad
CommonAvi y selecciona el valor aviCopyFile. Después vete a la ficha
Standar y coloca dos Buttons debajo del componente Animate, a uno
le pones Animar y al Otro Detener. Con esto tendremos lista nuestra
primer pagina así es que selecciona el componente PageControl y con
el botón secundario del ratón dale nuevamente Click y elige la opción
de NewPage. Ahora Vete a la propiedad Caption y ponle Calendarios.
Coloca dentro de esta pagina un componente MonthCalendary un
componente DateTimePicker, a estos componentes no les haremos
nada.

Si todo va bien el diseño estaría más o menos así.

2
 

Manual Delphi Ricardo E. Jasso Ponce

Muy bien ahora vamos a introducir el código, empezaremos por los


botones de la barra de herramientas.

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
 

Manual Delphi Ricardo E. Jasso Ponce


Muy bien.... traigan la tequila compadres.. pos ya terminamos. ahora
solo córrelo con F9 y listo.

Ficha System
Contiene componentes que permiten acceder a algunos elementos
importantes del sistema, enseguida muestro la ficha.

Imagen Componente Descripción


Es un temporizador que ejecuta un evento
 Timer cada intervalo de tiempo programado.
PaintBox Define una área en la que se puede dibujar.
MediaPlayer Es
un Panel de control del reproductor de
vídeo multimedia y de archivos de sonido.
Es un contenedor que define una área de
OLEContainer cliente OLE. Lo utilizaremos en el ejemplo
para ver video.
DDEClientConv Establece una conexión DDE como cliente a
un servidor DDE.
DDEClientItem Especifica
los datos que serán enviados a
un servidor DDE.
DDEServerCon Establece una conexión como servidor DDE.
v
DDEServerItem Especifica los datos que serán enviados a
un cliente DDE.

Muy bien ahora como se supone que ya sabemos utilizar alguna


variedad de componentes pues lo que haremos es un reproductor de
vídeo casi casi profesional....... Bueno ustedes son los que retocaran
algunos detalles.
Reproductor de Vídeo
Primeramente diseñaremos el aspecto visual después nos iremos con
el código Ok.

Crea una nueva Aplicación. Al Caption del Form ponle Mi Reproductor


de Vídeo.
Ve a la ficha System y coloca un componente OleContainer que
abarque una parte considerable del formulario.
Ve a la ficha Estándar y coloca un componente ScrollBar. Ponlo
debajo del componente OleContainer.

2
 

Manual Delphi Ricardo E. Jasso Ponce


Ve a la ficha System y coloca un componente MediaPlayer, ahora vete
a la propiedad VisibleButtons, te desglosara todos los botones del
Media Player, Estarn en True por Defaul, quiero que dejes solamente
los botones btPlay, btPause, btStop en True los demás ponlos en
False. Ahora ve a la Propiedad Display, te desplegara una lista de
componentes elige el componente OleContainer1.

A un costado del componente mediaPlayer pon un componente BitBtn


(Esta en la ficha Additional), agrégale una imagen (ya sabes como) y
en la propiedad caption ponle Abrir.

Ve a la ficha estándar y pon un componente Label, en su caption


ponle Duracion, pon otro componente Label abajo de ese, y en su
caption ponle T. Transcurrido. Ok. ahora pon dos componentes Label
nuevamente y su propiedad Visible pónselas en False. el tercer Label
tiene que quedar a un costado del Label 1 y el cuarto del 2. De
cualquier forma abajo presento el diseño.

Ve a la ficha System y pon un componente Timer.


Mira compadre no explique todas las fichas que trae Delphi. Ok. pero
con lo que hemos visto hasta ahora ya sabes navegar entre las fichas
y sus componentes así es que vamos a utilizar un componente que
esta en otra ficha diferente a las vistas.

Vete a la ficha Dialogs, Pon el componente OpenDialog, es un


componente no visual y mediante la instruccion Execute nos mostrara
la típica ventana de Abrir un Archivo.
Bien una vez puesto este componente vete a la propiedad Filter da
doble Click a su derecha y te saldrá una venta dividida en dos partes
la de la izquierda dice Filter Name y la de la derecha dice Filter. Ahora
en filter name Escribirás Archivos Avi, en Filter escribiras *.Avi,
nuevamente en una nueva fila escribe en Filter Name Todos los
Archivos y en Filter *.*. Esa ventana quedaría de la siguiente forma.

2
 

Manual Delphi Ricardo E. Jasso Ponce


Muy bien Ahora ve a la ficha Win32 y coloca un componente
StatusBar. Automáticamente se colocara en la parte inferior del
formulario. Vete a la propiedad SimplePanel y ponla en True, Después
ve a la Propiedad Simpletext y ponle Inactivo, Tienes que ponerlo
como yo te lo estoy Escribiendo ya que esa etiqueta la utilizo para
saber el estado del formulario y las mayúsculas o minúsculas son
sensibles en las comparaciones.
Muy bien si has hecho todo lo que te dije el Formulario tiene que lucir
más o menos Así.

 
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
 

Manual Delphi Ricardo E. Jasso Ponce


MEdiaPlayer1.Play;
StatusBar1.SimpleText := 'Repoduciendo Archivo: ' +
OpenDialog1.FileName;
Label3.Visible := True;
Label4.Visible := True;
end;
end;
 
Observa que el OpenDialog1.Execute devuelve un valor True cuando
el usuario abre un archivo, la propiedad FileName contiene el nombre
el archivo que abrió. El MediaPlayer mediante su propiedad FileName
le indicamos el archivo que reproducirá, después simplemente lo
abrimos.

Si te fijas la propiedad DisplayRect permite indicar el tamaño en que


queremos visualizar el Vídeo que por cierto es el tamaño del
componente OleContainer. Después ponemos visibles los Labels 3 y
4, en estos se muestra el tiempo total del vídeo y en el otro se
mostrara el tiempo en el que va la reproducción.

Ahora pondrás este código en el evento OnTimer del componente


 Timer. Puedes irte al inspector de Objetos o simplemente dale Doble
Click con el ratón al componente.
procedure TForm1.Timer1Timer(Sender: TObject);
var posicion, duracion : LongInt;
begin
if StatusBar1.SimpleText <> 'Inactivo' then
begin
with MediaPlayer1 do
begin
MediaPlayer1.TimeFormat := tfMilliseconds;
duracion := Round(Length div 1000);
scrollBar1.Max := length;
Label3.Caption := Format('%d:%d',[duracion div 60, duracion
Mod 60]);
posicion := round(Position div 1000);
Label4.Caption := Format('%d:%d',[posicion div 60, posicion
Mod 60]);
ScrollBar1.Position := position; //minuto * 60 + segundo;
end;
end;
end;
 

El componente Timer va a estar ejecutando este código cada


segundo. Primeramente verifica el StatusBar, si la propiedad
simpletext es diferente a Inactivo ejecutara el código que le sigue,
observa que utilizamos un With MediaPlayer do con el cual nos

2
 

Manual Delphi Ricardo E. Jasso Ponce


permite acceder a todos las propiedades de ese componente.
Indicamos al MediaPlayer que el formato del tiempo será en
Milisegundos, posteriormente calculamos la duración del archivo,
calculamos su posición y las pegamos en los Labels. Ha y desde luego
vamos recorriendo el ScroolBar.

Hasta ahora con el código que hemos puesto, nuestra aplicación es


capaz de reproducir vídeo y esta bien pero que tal si le damos un
toque más especialon como que al presionar las teclas Alt + Enter, el
vídeo se vea a pantalla completa y de igual forma al volverlas a
presionar regrese a pantalla normal. Bueno para lograr eso pon este
código en el evento OnKeyDown del Formulario.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (HiWord(GetKeyState(VK_MENU)) <> 0) and (Key = 13) then
begin
if Form1.WindowState = WsNormal then
begin
Ancho := Form1.Width;
Alto := Form1.Height;
Label1.Visible := False;
Label2.Visible := False;
Label3.Visible := False;
Label4.Visible := False;
MediaPlayer1.Visible := False;
BitBtn1.Visible := False;
StatusBar1.Visible := False;
ScrollBar1.Visible := False;
OleContainer1.Visible := False;
Form1.BorderStyle := BsNone;
Form1.WindowState := WsMaximized;
MediaPlayer1.Display := Form1;
MediaPlayer1.DisplayRect :=
rect(0,0,Form1.Clientwidth,Form1.ClientHeight);
end
else
begin
Form1.WindowState := WsNormal;
Form1.Width := Ancho;
Form1.Height := Alto;
Form1.Position := PoScreenCenter;
Label1.Visible := True;
Label2.Visible := True;
Label3.Visible := True;
Label4.Visible := True;
MediaPlayer1.Visible := True;
BitBtn1.Visible := True;
StatusBar1.Visible := True;

2
 

Manual Delphi Ricardo E. Jasso Ponce


ScrollBar1.Visible := True;
OleContainer1.Visible := True;
Form1.BorderStyle := BsSingle;
MediaPlayer1.Display := OleContainer1;
MediaPlayer1.DisplayRect :=
rect(0,0,Form1.Clientwidth,Form1.ClientHeight);
end;
end;
end;

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
 

Manual Delphi Ricardo E. Jasso Ponce


que tienen las dimensiones del formulario respectivamente. Después
Pongo la propiedad Visible en False de todos los componentes
visuales. Enseguida entenderás por que. Hay te va una nota acerca
del MediaPlayer, no nada más puedes reproducir vídeo en un
OleContainer si no en cualquier superficie plana, como un Panel o el
mismo Form, y es eso lo que hacemos, ponemos la propiedad
BorderStyle del form en BsNone y lo maximizamos, de esta forma el
Form abarca toda la pantalla incluyendo la barra de inicio de
windows, bueno despues unicamente resta indicarle al MediaPlayer
que se va a reproducir en el form, y eso lo hacemos mediante la
propiedad Display. Ojo aparte de indicarle que se reproducirá en el
form hay que indicarle las nuevas dimensiones del vídeo mediante la
propiedad DisplayRect. Esto es en si lo que sucede cuando se
maximiza.

Órale pues..... cuando se minimiza pues simplemente pones visibles


todos los componentes visuales, volvemos a poner el BorderStyle del
Form en BsSingle, la propiedad WindowsState del form la ponemos en
WsNormal, mediante las variables Globales Ancho y Alto ponemos las
dimensiones del Form, le indicamos al mediaPlayer que se
reproducirá en el OleContainer y listo. Hay otras cosillas pero es
básicamente esto.

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.

Delphi posee su propio motor de base de datos el BDE o Borland


Databae Engine el cual nos permite desarrollar nuestras aplicaciones
independizándolas del gestor de bases de datos. El BDE sirve como
traductor entre nuestra aplicación y las bases de datos que utilizamos
funcionando también como interfaz entre los componentes
especializados para bases de datos que posee Delphi. El BDE cuenta
con una biblioteca de funciones conocida como IDAPI (Integrated
Database Applications Program Interface) que es el traductor ante los
distintos gestores de bases de datos para que entiendan lo que
nuestra aplicación realiza.
Delphi posee una herramienta que nos permite diseñar nuestras
bases de datos, es un programa llamado Database DeskTop.

Primeramente mostrare las fichas de componentes más comunes


relacionados con el manejo de bases de datos

2
 

Manual Delphi Ricardo E. Jasso Ponce


Ficha Data Access
Contiene componentes para realizar conexiones con las bases de
datos y obtener la información que en ella se almacena. A
continuación se muestra.

Imagen Componente Descripción

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.

Ficha Data Controls


En esta ficha se encuentran componentes similares a los de la ficha
standard y Additional pero que estarán ligados a bases de datos
permitiendo con esto trabajar con la información almacenada en
ellas.

Imagen Componente Descripción

DbGrid Presenta los datos en una


rejilla de filas y columnas.
Posibilita la navegación por los
DbNavigator registros de una tabla
permitiendo su navegación,
modificación, eliminación.
DbText Label vinculado a bases de
datos.

2
 

Manual Delphi Ricardo E. Jasso Ponce


DbEdit Cuadro de texto vinculado a
bases de datos.
DbMemo Memo vinculado a bases de
datos.
DbImage Image vinculado a bases de
datos.
DbListBox ListBox Vinculado a bases de
datos.
DbComboBox ComboBox vinculado a bases
de datos.
DbCheckBox CheckBox vinculado a bases
de datos.
DbRadioGroup RadioGroup vinculado a bases
de datos.
DbLookupListBo ListBox que presenta datos de
una tabla y modifica los de
x otra.
ComboBox que presenta datos
DbLookupComb de una tabla y modifica los de
oBox otra.
RichEdit vinculado a bases de
DbRichEdit
datos.
Permite personalizar un area
de presentación de datos y
DbCtrlGrid
permite que el área actúe
como un Dbgrid.
DbChart Chart vinculado a bases de
datos.

Ficha BDE
Esta ficha contiene componentes que habilitan la conexión a bases de
datos utilizando el BDE engine de Delphi.

Imagen Componente Descripción


Permite la conexión a una tabla
 Table de una base de datos.
Permite crear y ejecutar
Query consultas SQL a una base de
datos.

2
 

Manual Delphi Ricardo E. Jasso Ponce


Permite ejecutar procedimientos
StoredProc almacenados en un servidor de
bases de datos.
Realiza conexiones a servidores
DataBase remotos.
Gestiona y controla las
Session conexiones activas a las bases
de datos.
Permite realizar acciones sobre
BatchMove los datos localmente que luego
serán enviados al servidor.
UpdateSQL Permite realizar actualizaciones
en una base de datos SQL.
Encapsula una tabla que esta
NestedTable anidada dentro del campo de
otra tabla.
Permite el acceso a datos por
BDEClientData parte de aplicaciones cliente,
Set
etc. a través del BDE.

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.

Database DeskTop me permite crear tablas de diferente tipo como


tablas Paradox, Dbase, MsAcces, Foxpro, Informix, etc. en este caso
nos enfocaremos a crear tablas de tipo Paradox aunque en su
momento are una aclaración cuando es necesario utilizar algún otro
tipo de tabla. OK.
Muy bien para entrar al DataBase DeskTop lo podemos hacer de dos
formás, la primera es accesando desde el menú
inicio/programás/Delphi/Database DeskTop. La otra es Dentro de
Delphi te vas al Menú Tools y encontraras la opción Database
Desktop. Muy al accesar al el te aparecerá de la siguiente forma.
 

2
 

Manual Delphi Ricardo E. Jasso Ponce

 
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
 

Manual Delphi Ricardo E. Jasso Ponce


Elige Paradox 7, de hecho esta activada por defaul. después de eso te
saldrá la siguiente ventana:

En esta ventana es en donde crearemos la estructura de nuestra base


de datos el campo Field Name contendrá los nombres de los campos
de nuestra base de datos que en este ejemplo serán: Clave, producto,
proveedor, precio y mínimo.
Después está otra leyenda que dice Type, contendrá el tipo de dato
que será nuestro campo, para seleccionar el tipo de dato basta con
situarnos en Type y presionar la barra espaciadora y nos desplegara
todos los tipos de datos, de cualquier forma si sabemos su tecla
abreviada se la podemos escribir directamente.

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.

Ahora quiero que hagas la siguiente estructura:


Field Name Type Size Key
* (Clave
Clave I (Long Integer) Primaria)
Producto A (Alpha) 40

2
 

Manual Delphi Ricardo E. Jasso Ponce


Cantidad N (Numeric)
Precio $ (Money)
Minimo I (Integer)
Muy bien ya que tecleaste esta estructura quiero que te ubiques en la
parte izquierda de tu ventana, encontraras una leyenda que dice
  Table Properties y debajo de ella un especie de Combobox. Ese
combobox contiene las propiedades de la tabla que tu puedes
configurar. No entrare en más detalles, solo te digo que experimentes
un poco con ellas.

No vamos a crear algún índice secundario en esta tabla por que


usaremos algunas sentencias Sql en búsquedas por producto con
propósito de aprendizaje, por lo tanto no es necesario crearlo.
Muy bien ahora solo quiero que des Click en el botón que dice Save
As, y guardes la tabla en el directorio c:\Ejemplo con el nombre de
Inventario. Para crear el directorio vete al explorador ó Mi PC y
simplemente vete a la unidad C y créala.
De igual forma como creaste esta tabla quiero que hagas las
siguientes tablas y las guardes en el mismo directorio OK.
 Tabla Ventas (que sea paradox 7).

Field Names Type Size Key


Fecha D *
Ingreso $
Guardala con el nombre de ventas OK.
 Tabla Auxiliar (que sea paradox 7).
Field Names Type Size Key
Clave I
Cantidad N
Producto A 40
Precio $
Subtotal $
Guardala con el nombre de Auxiliar OK.

El ejercicio que realizaremos se trata de un sistema que controla un


inventario de productos, ventas de productos y generación de
reportes de las utilidades, en este momento hemos creado las bases
de datos, pero falta explicar muchas cosas que son necesarias por lo
tanto conforme se expliquen se le ira avanzando al sistema Ok.

2
 

Manual Delphi Ricardo E. Jasso Ponce


Componente TTable
Es un componente no visual y se encuentra en la ficha BDE.

Cuando se trabaja con una base de datos, el principal responsable de


prácticamente todo es el componente Table. Este componente es el
encargado de leer, escribir, actualizar, etc la base de datos a la cual
esta conectado, y forma una pareja muy útil con el componente
Datasource, el cual es el encargado de conectar el componente table
con los controles usados para visualizar los datos.

La primera propiedad que se debe modificar en el componente es la


que hace referencia a que base de datos queremos conectar el
componente y se trata de la propiedad DatabaseName. Existen dos
formás de indicarle la base de datos que usaremos, una es dándole
toda la ruta que en nuestro caso seria C:\EJEMPLO o indicando el alias
que se haya definido en el sistema que es lo más recomendable
utilizar los alias pero bueno esa es otra historia digiera chonita.

Bueno después de esto es necesario indicarle la tabla que se va a


utilizar y esto se hace en la propiedad TableName, esta propiedad me
listara todas las tablas existentes en la ruta o alias que pusimos en el
DatabaseName, posteriormente la propiedad Active se tendrá que
poner en True para poder manipular la tabla.

Existen otras propiedades interesantes como IndexFieldNames que es


para indicarle el índice que usaremos en la tabla. Desde luego
mostrara las claves primarias que se hayan puesto cuando se diseño
la B.D. Existe otra propiedad para los índices secundarios que
funciona exactamente igual y es la propiedad IndexName.

El componente Table tiene una larga lista de eventos, que se pueden


dividir en tres grupos, los eventos que se producen antes de un
operación como una apertura, cierre, lectura, etc., los cuales
empiezan por la palabra Before, luego están los eventos que se
producen en el momento y cuyo nombre empieza por On y por ultimo
los eventos que se producen después, cuyo nombre empieza por
After . A continuación te listo los principales eventos del componente
 Table.

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
 

Manual Delphi Ricardo E. Jasso Ponce


BeforeEdit Antes de editar el registro actual
BeforeInsert Antes de insertar un registro
BeforeOpen Antes de abrir la tabla
BeforePost Antes de guardar los datos
OnCalcFields Se genera cuando se va a calcular el valor
de un campo
OnDeleteErr Cuando se produce un error al borrar un
or registro
OnEditError Cuando hay un error al editar un registro
OnFilterReco Cuando se activa el filtrado
rd
OnNewRecor Cuando se añade un registro
d
OnPostError Cuando
de datos
hay un error durante el grabado

Ahora te listare las operaciones más comunes que se realizan en un


componente Ttable.

Open Se abre la tabla


Close Se cierra la tabla
Edit Para editar el campo actual
Insert Añade datos a la tabla
Post Graba los datos
Cancel Cancela la operación actual
Delete Borra el registro actual de la tabla
First Se va al primer registro de la tabla.
Last Se va al ultimo registro de la tabla.
Next Avanza al siguiente registro.
Prior Retrocede un registro.

Cuando se manejan bases de datos es común que necesitemos


acceder a los sus campos mediante código y precisamente un método
de acerlo es utilizando FieldByName.

Accesos fisicos a la tabla utilizando FieldByName . . .


FieldByName permite el acceso al objeto Tfield asociado a un
determinado campo a partir del nombre del campo en la tabla su
sintaxis es de la siguiente forma:
Function FieldByName(Const NombreCampo: String): TField;

No te espantes es fácil utilizarlo por ejemplo en nuestra base de datos


Inventario que acabamos de crear si queremos acceder al campo
Producto y asignarle un nombre seria de la siguiente forma:

2
 

Manual Delphi Ricardo E. Jasso Ponce


 Table1.FieldByName('Producto').AsString := 'Sabritas';

Como ves primeramente va el nombre del componente Table que


estará ligada a nuestra base de datos física, posteriormente
escribimos FieldByName en el cual dentro de paréntesis y entre
comillas simples indicaremos el nombre del campo al cual aremos
referencia, por ultimo bastara con indicarle el tipo de dato que es el
campo al cual hacemos referencia, que por cierto eso lo indicamos
con el .As. En caso de que quieras leer el valor de un campo y
asignarlo a una variable pues simplemente cambia la posición de la
línea de código anteriormente escrita solo recuerda que los tipos de
datos sean iguales.

Inicio y fin de la Tabla . . .


Cuando en un desplazamiento sobre la tabla se llega a su inicio o a su
final se modifican las propiedades Bof y Eof. La propiedad Bof toma el
valor True cuando se esta en el primer registro de la tabla y la
propiedad Eof toma el valor True cuando se esta en el ultimo registro
de la tabla o cuando la tabla esta vacía. Por ejemplo para saber si se
ha llegado al final de la tabla seria:
If Table1.Eof = True then

ShowMessage('SE ESTA EN EL FINAL DE LA TABLA');

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
 

Manual Delphi Ricardo E. Jasso Ponce


realizaran con campos indexados, yo utilizare el método más común y
menos problemático que es el método directo.
Mediante el método FindKey se busca en la tabla para encontrar un
registro en el que sus campos índices coincidan con los que se han
pasado como argumentos en un array de valores separados por
comás, regresa un valor Falso O Verdadero dependiendo si tuvo éxito
o no en la búsqueda. Por ejemplo en la tabla Inventarios para buscar
un producto se escribiría el siguiente código.

If Table1.FindKey([Edit1.Text]) = True Then


ShowMessage('Producto Localizado')
Else

ShowMessage('Producto no encontrado');

Como puedes ver simplemente va el nombre del componente Table


que previamente nosotros lo ligaremos a la B.D., posteriormente va
FindKey en el cual entre paréntesis y corchetes ponemos la variable o
el dato a buscar que en este caso estoy suponiendo que en un Edit el
usuario escribió el producto que desea buscar. Ahora como el método
devuelve un valor True cuando se tiene éxito pues solo lo comparo
con un if igualado a True.
Ahora si deseas que el sistema en caso de que no encuentre el
registro se posicione en el registro más cercano al buscado se pondría
la siguiente Instrucción.
If Table1.FindKey([Edit1.Text]) = True Then
ShowMessage('Producto Localizado')

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.

El otro método de búsquedas es Locate, el cual nos permite buscar


por una condición en un columna o por varias columnas. Locate es
una función que devuelve True o False según ha tenido éxito o no, y
si su busqueda fue exitosa la tabla muestra la fila que cumplió la

2
 

Manual Delphi Ricardo E. Jasso Ponce


condición. Para usar este método se han de pasar una serie de
parámetros y a continuación te muestro su sintaxis:
Locate(const KeyFields : string; const KeyValues : Variant; Options :
 TLocateOptions)
El primer parámetro es el campo o campos por los cuales queremos
hacer la búsqueda, por ejemplo en nuestra tabla Inventario hay un
campo en el cual guardamos el nombre de los productos y
siqueremos realizar una búsqueda por este campo es en este primer
parámetro donde debemos poner el nombre del campo.
El segundo contiene la condición, por ejemplo si estamos buscando
productos según su proveedor es aquí en donde lo pondríamos. El
ejemplo quedaría así:
 Table1.Locate ('Producto','CocaCola',[]);

Por último esta Options, el cual indica como se ha de realizar la


búsqueda, si se ignoran las mayúsculas, si se hacen búsquedas
parciales en los campos Alfanuméricos, etc, esto quiere decir que se
mostraran las filas que contengan CocaCola en sus respectivos
campos además que otros datos, o sea que la busqueda no es exacta.
Por ejemplo:
 Table1.Locate ('Producto','CocaCola',[ loCaseInsensitive]);

Recuerda que te dije que el componente Table va íntimamente


relacionado con el DataSource, pos es cierto así es que te te explicare
su funcionamiento.

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
 

Manual Delphi Ricardo E. Jasso Ponce


Son los que se encuentran en la ficha DataAcces y Excepto por el
componente DbNavigator el resto de los componentes son utilizados
para presentar los datos de las tablas. Uno de los componentes más
comunes sin duda es el Dbgrid el cual esta constituido por un
conjunto de rejillas a través de las cuales nos presenta la información
de las tablas. A continuación te lo explicare.

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.

La propiedad principal es DataSource, es aquí en donde indicamos el


datasource al cual queremos vincularlo. En caso de que el DataSource
se encuentre en otro formulario pues simplemente se le escribe el
nombre del formulario en el que se encuentra y su dataSource, por
ejemplo supongamos que tengo 2 formularios en el primero tengo mi
tabla y mi DataSource1 y en el segundo formulario tengo un DbGrid1
pues simplemente para ligarlo en su propiedad DataSource pondría
Form1.DataSource1 y presto es todo. Después existen otras
propiedades interesantes como Options que a continuación describo.

El usuario puede editar los datos


dsEditing sobre la rejilla
dgAlwaysShowEdit La rejilla esta en modo edición, no
or hace falta pulsar F2
dgTitles Muestra los títulos de las columnas
dgIndicator Se muestra un indicador para
conocer el registro activo
dgColumnResize Permite cambiar el ancho de las
columnas
Dibuja líneas de separación entre las
dgColLins
columnas
Dibuja líneas de separación entre las
dgRowLines filas
dgTabs Se puede navegar por el
componente usado la tecla Tab
dgRowSelect Selecciona filas completas en lugar
de filas
Permite borrar registros, mostrando
dgConfirmDelete
un mensaje
dgCancelOnExit Cancelas
las inserciones vacías al
salir del control
Permite seleccionar múltiples filas a
dgMultiSelect
la vez

2
 

Manual Delphi Ricardo E. Jasso Ponce


Hasta ahora esta bien con el DBGrid pero su verdadera potencialidad
se encuentra en la propiedad Columns, que encapsula tanto el
aspecto de las columnas como los campos de las tablas o consultas
SQL que están ligadas al la columna. Cuando no se definen columnas
en un DBGrid automáticamente el control creara una columna para
cada campo de nuestra base de datos. Para accesar al editor de
columnas basta con dar doble click sobre el componente o dar un
click con el botón secundario y elegir la opción Columns Editor del
menú emergente, saldrá la siguiente ventana.

Para este pequeño ejemplo es necesario que hagas lo siguiente:

1. Pon un componente Table, en su propiedad DataBasename elige


DBDemos, en su propiedad TableName elige la tabla Animals, pon la
propiedad Active en True.
2. Coloca un componente DataSource y en su propiedad DataSet pon
 Table1.

3. Coloca un componente DbGrid y en su propiedad DataSource pon


DataSource1.
 
Ahora viene algo importante, hasta ahora nos mostrara todos los
campos de la tabla en nuestro DBGrid por lo tanto quiero que des
doble Click sobre el DBGrid y aparecerá el editor de columnas, pero
sorpresa verdad esta vacío y eso es por que no se han definido y
para definirlos basta con dar un click en el tercer icono que dice Add
All Fields y nos agregara una columna para cada campo de nuestra
base de datos empezando por un índice cero, bien ahora ya tengo

2
 

Manual Delphi Ricardo E. Jasso Ponce


todos los campos de mi base de datos por lo tanto si quiero borrar
algunos bastara con seleccionarlos y dar un click en el segundo icono
que dice Delete Selected (Del), cabe mencionar que no solo puedo
borrar algunos campos que no quiera si no que también puedo
cambiar el orden de las columnas arrastrando con el puntero del
ratón a la posición que deseo un campo en particular.

Cuando estoy en el editor de columnas y selecciono una de ellas


cambiaran las propiedades en el inspector de objetos brindándonos
con esto ciertas opciones que podremos modificar, a continuación te
las describo.

Alignment Alineación de la columna


Button style Permite desplegar un lista con valores, o
un botón
Color Color de fondo de la columna
DropDown
Número de filas desplegables
Rows
FieldName Nombre del campo que se visualiza
Fuente con la que se muestra la
Font
información de la columna
Lista de valores que aparecerán al
PickList
desplegar la columna
ReadOnly Esta columna solo es de lectura
Width Ancho de la columna en Pixels
 Title Título de la columna

Ahora la opción Title tiene ciertas propiedades que son interesantes


es por eso pariente que las describo.

Alignme Alineación de la cabecera de  


nt columna
Caption  Texto
que muestra la cabecera de la
columna
Color Color fondo de la cabecera
Font Fuente con la que mostrara la
cabecera La propiedad PickList es
una propiedad que
apunta a una lista de String y el efecto que produce es que en la
columna donde se ponga se muestra un menú desplegable que se
activara con el ratón y contendrá todo lo que hayamos puesto en la
propiedad PickList, solo ten cuidado ya que la propiedad ButtonStyle
debe ser cbsAuto.

Se puede manipular información y realizar operaciones con los


campos del DBGrid los métodos más comunes son el
DbGrid1.Columns[número_columna].Propiedad y

2
 

Manual Delphi Ricardo E. Jasso Ponce


DbGrid1.Fields[número_columna].propiedad. Todo dependerá de que
tipo de operación deseo realizar.

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.

Botón Método Descripción


Salta al primer
registro de la tabla.
Desactiva los botones
nbFirst First First y prior y activa
Next y Last si no lo
estaban.
Retrocede al registro
nbPrior Prior anterior del actual,
activa Next y Last.
Avanza al registro
nbNext Next posterior al actual,
activa First y Prior.
Salta al ultimo registro
de la tabla, desabilita
nbLast Last Next y Last y activa
First y Prior.
Inserta un nuevo
registro en la posicion
nbInsert Insert anterior al registro
actual, modifica el
estado de la tabla a
modo de Edicion.
Borra el registro
actual y se posiciona
nbDelete Delete en el registro
siguiente
Pone la tabla en modo
de edición, con lo cual
nbEdit Edit
se pueden modificar
los datos del registro.
Escribe en la base de
datos los cambios
nbPost Post
realizados sobre el
registro activo.
nbCancel Cancel Cancela la edición del
registro activo y

2
 

Manual Delphi Ricardo E. Jasso Ponce


recupero los datos
anteriores.
Refresca la tabla o la
nbRefresh Refresh
actualiza.

Una propiedad interesante es la propiedad VisibleButtons que


contiene todos los botones que nos presenta el DBNavigator, basta
con poner en false los que no queramos que se muestren.

La propiedad Hints permite colocar una leyenda para cada botón, si


desactivaste algún botón su leyenda solo déjala en blanco. sale
primo.
La propiedad ConfirmDelete recibe un valor Booleano y esta en True
por defaul y lo que realiza es mandarnos un mensaje de advertencia
cuando se trata de borrar un registro.

Ahora a nuestro formulario por favor colócale un DbNavigator y listo


podrás recorrer los campos de la tabla Animals que pusimos
anteriormente, solo recuerda poner en la Propiedad DataSource del
DBNavigator DataSource1.

DBEdit, DBText (Ficha DataAcces). . .


El componente DBEdit esta diseñado tanto para presentar datos como
para introducir datos en una tabla y su propiedad más importante es
DataSource, la cual hará referencia a la tabla con la que se trabajara.

La propiedad DataField Indica el campo de la base de datos con el


cual se trabajara. Esta propiedad mostrara todos los campos de la
tabla solo tienes que elegir cual quieres.
Otra propiedad interesante podría ser ReadOnly la cual recibe un
valor Boolano y sirve para poner el campo en solo lectura
desabilitando de esta forma que se capture información sobre el. Las
demás propiedades son iguales a las del Edit.
El componente DBText esta diseñado solo para presentar
información. Tiene el aspecto de un Label solo que a diferencia de
este ultimo, mostrara la información contenida en un registro de la
base de datos, no se puede introducir información en un DBText.
Sus propiedades más interesantes son el DataSource y DataField, las
cuales funcionan igual que las del DBEdit.

NOTA: Todos estos componentes funcionan a través de las


propiedades DataSource y DataField, solo es cuestión que indagues
sobre ellos un poco y tu mismo descubrirás su funcionalidad.

También podría gustarte