Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Conceptos y Ejercicios en DELPHI 7

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 49

Manual Básico Borland Delphi 7

Manual Delphi Área de informática


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.

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

1
Manual Delphi Área de informática
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.

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.

1
Manual Delphi Área de informática

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

1
Manual Delphi Área de informática
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.

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.

Operador Operación Tipo Tipo


Operando Resultado
Suma Integer Integer
+
Real Real
Resta Integer Integer
-
Real Real
Multiplicación Integer Integer
*
Real Real
/ División Integer Integer
Real Real
Div División entera Integer Integer
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.

1
Manual Delphi Área de informática
Operador Operación Tipo Operando Tipo Resultado

Not Negación a nivel de Integer Integer


Bit.
And Producto a nivel de Integer Integer
Bit.
Or Suma a nivel de Bit. Integer Integer

Xor Or Exclusiva a nivel de Integer Integer


Bit.
Shl Desplazamiento bit a Integer Integer
bit hacia la izquierda.

Shr Desplazamiento bit a Integer Integer


bit hacia la derecha.

La siguiente tabla muestra los operadores booleanos.

Operador Operación Tipo Tipo


Operando Resultado
Not Negación. Boolean Boolean
And Producto Boolean Boolean
lógico.
Or Suma lógica. Boolean Boolean

Xor Or Exclusiva Boolean Boolean


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

1
Manual Delphi Área de informática
< Menor que. Boolean
> Mayor que. Boolean
<= Menor o Igual que. Boolean
>= Mayor o Igual que. Boolean

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 , Mod Segunda Operadores de


, And , Shl , Multiplicación
Shr , As  
+ , - , Or , Xor Tercera Operadores de
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;

Declaración de Variables y Constantes

1
Manual Delphi Área de informática
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.

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.

1
Manual Delphi Área de informática
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 32 bits con signo
2147483648
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 en
Tipo Rango de valores
Significativos Bytes
± 1.5 * 10Exp-45 ..  ± 3.4 *
Single 7-8 4
10Exp38  
Real48 ± 2.9 * 10Exp-39 ..  ± 1.7 * 10Exp38 11-12 6
± 5.0 * 10Exp-324 ..  ± 1.7 *
Real 15-16 8
10Exp308
± 5.0 * 10Exp-324 ..  ± 1.7 *
Double 15-16 8
10Exp308
Extende ± 3.4 * 10Exp-4932 ..  ± 1.1 *
19-20 10
d 10Exp4392
Comp -2Exp63 .. 2Exp63 -1 19-20 8
-9223372036854775808 ..
Currency 19-20 8
9223372036854775807

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

1
Manual Delphi Área de informática
con otros lenguajes y el entorno de Windows. Bueno a continuación te
muestro su tabla.

Memoria Requerida
Tipo
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.

Memoria requerida en
Tipo Carácter que contiene
Bytes
AnsiChar Un Caracter Ansi 1
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.

Tipo Carácter Longitud Máxima Memoria

1
Manual Delphi Área de informática
que
contiene
AnsiString AnsiChar ~2Exp31 Caracteres Hasta GB.
ShortString AnsiChar 255 Caracteres 2 a  256 Bytes.
String AnsiChar ~2Exp31 Caracteres 256 hasta 2GB.
WideString WideChar ~2Exp30 Caracteres Hasta 2GB.

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

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.

1
Manual Delphi Área de informática
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
     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.

1
Manual Delphi Área de informática
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 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.

1
Manual Delphi Área de informática
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.

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.

1
Manual Delphi Área de informática

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').

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

1
Manual Delphi Área de informática
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

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.

1
Manual Delphi Área de informática
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;
 

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.

1
Manual Delphi Área de informática
Ficha Standar.

Empezaremos a partir del segundo componente.

Imagen Componente Descripción


Es un componente no visual que permite diseñar el
MainMenu
menú del formulario que si será  visual.
 Permite diseñar Menús contextuales o emergentes,
PopupMenu que aparecerán al pulsar el botón secundario del
ratón.
Es un cuadro de texto estático, por lo tanto visualiza
Label
texto pero no puede ser modificado.
Es un cuadro de Edición de Texto que permite
Edit
visualizar y modificar una línea de texto.
Es un Cuadro de Texto multilinea, se puede visualizar y
Memo modificar varias líneas de texto. Es parecido al Bloc de
Notas
Es un Botton clásico de cualquier aplicación Windows,
Button
no lleva ninguna imagen solo texto.
Es una casilla de verificación que permite seleccionar y
ChechBox
deseleccionar opciones.
Botón de opción parecido al CheckBox, se utiliza para
RadioButton seleccionar dentro de un conjunto de RadioButton u
opciones solamente uno de ellos.
Es una lista Standard de Windows en la que el usuario
ListBox
puede seleccionar un elemento de la lista.
Lista desplegable que combina las características de
ComboBox un ListBox y un Edit permitiendo al usuario seleccionar
un elemento.
ScrollBar Barra de desplazamiento estándar.
Funciona como contenedor de objetos, permitiendo
GroupBox
agrupar diferentes controles.
Es un contenedor exclusivamente para los
RadioGroup
RadioButtons.
Contenedor de objetos pero más potente que el
Panel
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

1
Manual Delphi Área de informática
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
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

1
Manual Delphi Área de informática

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.

1
Manual Delphi Área de informática
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;

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.

1
Manual Delphi Área de informática
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 Componente Descripción


Es un Botton que se le puede añadir un gráfico
BitBtn 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 Bitmap y
SpeedButton
trae la propiedad Flat que permite dar una
apariencia de boton plano.
Se utiliza para validar la entrada de datos
MáskEdit mediante el formateo del texto como lo es la
fecha, etc.
Permite mostrar gráficos como Bitmaps, iconos,
Image
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 área
ScrollBox visualizada, automáticamente al sobrepasar el
área salen las barras deslizadoras.
Es un ListBox solo que añade un CheckBox para
CheckListBox
cada elemento de la lista.
Sirve para definir áreas modificables por parte
Splitter
del usuario.
Es similar a Label, solo que tiene más
StaticText
propiedades modificables.
Se utiliza para crear barras de Herramientas
ControlBar
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.

1
Manual Delphi Área de informática
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 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.

1
Manual Delphi Área de informática
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.

1
Manual Delphi Área de informática
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 cada
PageControl pagina es accesible desde las mismás solapas
del componente.
Define una matriz de imágenes del mismo
ImageList 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 tanto a nivel de
RichEdit
palabra se le puede modificar el tamaño, color,
etc.
Es una barra de desplazamiento de Windows,
TrackBar que nos permite desplazar el control por un
conjunto de valores.
Es una barra de progreso estándar que nos
ProgresBar
indica el avance de un determinado proceso.
Muestra secuencias de BitMaps o Archivos Avi
Animate
sin sonido.
Despliega fechas y permite seleccionarlas,
DateTimePicker
también permite introducirlas.
MonthCalendar Nos presenta el calendario por meses.
StatusBar Es una barra de estado clásica de Windows.
ToolBar Permite crear una barra de Herramientas.
Es un contenedor de Barras de herramientas
CoolBar mismás que pueden ser configurables por el
usuario

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

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

1
Manual Delphi Área de informática
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í.

1
Manual Delphi Área de informática

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;

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

1
Manual Delphi Área de informática
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 cada
Timer
intervalo de tiempo programado.
PaintBox Define una área en la que se puede dibujar.
Es un Panel de control del reproductor de vídeo
MediaPlayer
multimedia y de archivos de sonido.
Es un contenedor que define una área de cliente OLE.
OLEContainer
Lo utilizaremos en el ejemplo para ver video.
Establece una conexión DDE como cliente a un
DDEClientConv
servidor DDE.
Especifica los datos que serán enviados a un servidor
DDEClientItem
DDE.
DDEServerConv Establece una conexión como servidor DDE.
Especifica los datos que serán enviados a un cliente
DDEServerItem
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.

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.

1
Manual Delphi Área de informática
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.

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

1
Manual Delphi Área de informática

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);
        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

1
Manual Delphi Área de informática
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
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

1
Manual Delphi Área de informática
    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;
            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

1
Manual Delphi Área de informática
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 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.

1
Manual Delphi Área de informática
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

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


Realiza las conexiones a las bases de
DataSource
datos.
Permite el acceso a datos tanto en
una aplicación estándar como el
ClientDataSet
acceso desde clientes en sistemás
distribuidos.

1
Manual Delphi Área de informática
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


Presenta los datos en una rejilla de
DbGrid
filas y columnas.
Posibilita la navegación por los
registros de una tabla permitiendo su
DbNavigator
navegación, modificación,
eliminación.
DbText Label vinculado a bases de datos.
Cuadro de texto vinculado a bases de
DbEdit
datos.
DbMemo Memo vinculado a bases de datos.

DbImage Image vinculado a bases de datos.

DbListBox ListBox Vinculado a bases de datos.


ComboBox vinculado a bases de
DbComboBox
datos.
DbCheckBox CheckBox vinculado a bases de datos.
RadioGroup vinculado a bases de
DbRadioGroup
datos.
ListBox que presenta datos de una
DbLookupListBox
tabla y modifica los de otra.
DbLookupComboBo ComboBox que presenta datos de
x una tabla y modifica los de otra.
DbRichEdit RichEdit vinculado a bases de datos.
Permite personalizar un area de
DbCtrlGrid presentación de datos y permite que
el área actúe como un Dbgrid.
DbChart Chart vinculado a bases de datos.

1
Manual Delphi Área de informática
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 de una
Table
base de datos.
Permite crear y ejecutar consultas SQL a
Query
una base de datos.
Permite ejecutar procedimientos
StoredProc almacenados en un servidor de bases de
datos.

DataBase Realiza conexiones a servidores remotos.

Gestiona y controla las conexiones


Session
activas a las bases de datos.
Permite realizar acciones sobre los datos
BatchMove localmente que luego serán enviados al
servidor.
Permite realizar actualizaciones en una
UpdateSQL
base de datos SQL.
Encapsula una tabla que esta anidada
NestedTable
dentro del campo de otra tabla.
Permite el acceso a datos por parte de
BDEClientDataSet aplicaciones cliente, 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

1
Manual Delphi Área de informática
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.

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.

1
Manual Delphi Área de informática

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.

1
Manual Delphi Área de informática
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 I (Long Integer)   * (Clave Primaria)
Producto A (Alpha) 40  
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.

1
Manual Delphi Área de informática
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.

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
BeforeCancel Antes de cancelar la operación
BeforeClose Antes de que se cierre la tabla

1
Manual Delphi Área de informática
BeforeDelete Antes de borrar un registro
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
Se genera cuando se va a calcular el valor de un
OnCalcFields
campo
OnDeleteError Cuando se produce un error al borrar un registro
OnEditError Cuando hay un error al editar un registro
OnFilterRecord Cuando se activa el filtrado
OnNewRecord Cuando se añade un registro
OnPostError Cuando hay un error durante el grabado de datos

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:

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

1
Manual Delphi Área de informática
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 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

1
Manual Delphi Área de informática
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 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.

1
Manual Delphi Área de informática
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

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

1
Manual Delphi Área de informática
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 sobre la


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

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.

1
Manual Delphi Área de informática

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

1
Manual Delphi Área de informática
DropDown Rows Número de filas desplegables
FieldName Nombre del campo que se visualiza
Fuente con la que se muestra la información de la
Font
columna
Lista de valores que aparecerán al desplegar la
PickList
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.

AlignmentAlineación de la cabecera de 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
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
nbFirst First botones First y prior y
activa Next y Last si no lo
estaban.
Retrocede al registro
nbPrior Prior anterior del actual, activa
Next y Last.
nbNext Next Avanza al registro posterior

1
Manual Delphi Área de informática
al actual, activa First y Prior.
Salta al ultimo registro de la
nbLast Last tabla, desabilita Next y Last
y activa First y Prior.
Inserta un nuevo registro
en la posicion anterior al
nbInsert Insert registro actual, modifica el
estado de la tabla a modo
de Edicion.
Borra el registro actual y se
nbDelete Delete posiciona en el registro
siguiente
Pone la tabla en modo de
edición, con lo cual se
nbEdit Edit
pueden modificar los datos
del registro.
Escribe en la base de datos
nbPost Post los cambios realizados
sobre el registro activo.
Cancela la edición del
nbCancel Cancel registro activo y  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.

1
Manual Delphi Área de informática
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