Manual de Delphi 7

Embed Size (px)

Citation preview

Manual Bsico Borland Delphi 7

Manual Delphi

Ricardo E. Jasso Ponce

Entorno de DesarrolloEl entorno de desarrollo, tambin conocido como IDE, se muestra al iniciar Delphi integrando todas las herramientas necesarias (Editor de cdigo, Editor de imgenes, Depurador, Herramientas de conexin 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 submens como definir las opciones de compilacin, 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 rpido a las diferentes opciones del men, lo cual nos facilita ejecutar las acciones ms utilizadas de una manera ms rpida. Dando un Click sobre ellas con el botn derecho del ratn podremos configurarlas. A continuacin muestro la funcin 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 tambin como VCL ( Visual Component Library) y se encuentra dividida en varias categoras segn las funciones que realizan. Cada paleta incluye en su parte izquierda el botn puntero que no es un componente sino que su funcin es parecida a la de cualquier programa grfico sirve para deseleccionar componentes seleccionados, etc. Para insertar un componente en el formulario solo selecciona el componente a insertar despus pulsa sobre el formulario y arrastra el ratn para definir su tamao, en caso que no lo arrastres Delphi automticamente le pone su tamao 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 diseo de las aplicaciones, es el contenedor final de otros componentes que finalmente constituirn nuestra aplicacin. El formulario es un componente ms 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 programacin lineal como C o Clipper tengan en cuenta que ustedes utilizaran tantos formularios como su aplicacin 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 pestaas o solapas una que dice Properties y Events. A continuacin se muestra las propiedades del formulario. Existen propiedades que tienen un signo de ms, eso significa que son contenedoras de otras opciones. A continuacin se explican algunas de las propiedades ms comunes del formulario.

BorderIcons: Tiene cuatro opciones misms que reciben un valor falso o verdadero (True o False) de las cuales dos son muy tiles y empezaremos por la de biMinimize, esta opcin 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 ejecucin. 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 alfanumrica 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 tambin se puede realizar posicionando sobre los bordes del formulario el puntero del ratn y arrastrarlo hasta lograr la dimensin 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 segn el suceso detectado se ejecuta su cdigo, existen varios eventos, explicar solo algunos, de cualquier forma durante el curso se explicarn ms. Para introducir el cdigo basta con dar doble Click en la parte derecha del evento a utilizar y Delphi automticamente nos crea el procedimiento de dicho evento y nos muestra el editor de cdigo.

2

Manual Delphi

Ricardo E. Jasso Ponce

Operadores Lgicos y AritmticosOperadores Aritmticos. . . . Permite realizar todo tipo de operaciones comunes con operadores numricos ya sean reales o enteros, en la siguiente tabla se muestran los tipos de datos. Operad or + * / Div Mod Operacin Suma Resta Tipo Tipo Operando Resultado Integer Real Integer Real Integer Real Integer Real Integer Real Integer Real Integer Integer

Multiplicaci Integer n Real Divisin Divisin entera Resto Integer Real Integer Integer

Operadores Lgicos. . . Se dividen en dos categoras los lgicos y los booleanos. La diferencia est en que las operaciones lgicas llevan la comparacin de valores a nivel de bit y las operaciones booleanas realizan comparaciones verificando si una cierta expresin es verdadera o falsa. En la siguiente tabla se presentan las operaciones lgicas. Operador Operacin Tipo Operando Tipo Resultado

2

Manual DelphiNot And Or Xor Shl Negacin a nivel de Bit. Producto a nivel de Bit. Suma a nivel de Bit. Or Exclusiva a nivel de Bit. Desplazamiento bit a bit hacia la izquierda. Desplazamiento bit a bit hacia la derecha.

Ricardo E. Jasso PonceInteger Integer Integer Integer Integer Integer Integer Integer Integer Integer

Shr

Integer

Integer

La siguiente tabla muestra los operadores booleanos. Operad Operaci Tipo Tipo or n Operand Resultad o o Not And Or Xor Negacin. Producto lgico. Suma lgica. Or Exclusiva lgica. Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean

Operadores Relacinales. . . Los utilizamos para realizar comparaciones entre dos valores y a continuacin se muestran en la siguiente tabla. Operador = Operacin Igualdad. Desigualdad. Tipo Resultado Boolean Boolean

2

Manual Delphi< > = Menor que. Mayor que. Menor o Igual que. Mayor o Igual que.

Ricardo E. Jasso PonceBoolean Boolean Boolean Boolean

Precedencia de Operadores. . . Cuando se evala una expresin en la que aparecen combinados diferentes operadores, las operaciones que representan se ejecutan en cierto orden que estn marcados por la precedencia de los operadores. A continuacin se muestra una tabla con su precedencia. Operador @ , Not Precedencia Primera Categora Operadores Unarios Operadores de Multiplicacin

* , / , Div , Segunda Mod , And , Shl , Shr , As + , - , Or , Xor Tercera

Operadores de Adicin Operadores Relacionales

=, , < , Cuarta > , =

Existen cuatro reglas de precedencia que se deben de tomar en cuenta:

Las expresiones encerradas entre parntesis se evalan antes de tratarlas como un nico operando. Lo que significa que primero se evala lo que est dentro del parntesis por ejemplo la siguiente operacin 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 tuviramos (-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 despus 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

Declaracin de Variables y ConstantesCONSTANTES. . . Se utilizan para representar lgicamente un valor que ser utilizado repetidamente en nuestro programa y que no variar durante su ejecucin. Para su declaracin se utiliza la palabra reservada Const. Por ejemplo continuacin 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 algn procedimiento, iran entre el Procedure y el Begin. Como puedes ver utilizamos nuevamente la funcin ShowMesage () la cual me permite mandar un mensaje sencillo al usuario pero bueno se explicar ms adelante en mensajes. De igual forma utilizo la funcin 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 ejecucin del programa. En Delphi las Variables se declaran con la palabra reservada Var. Por ejemplo realizaremos la misma funcin que las constantes pero ahora utilizando variables y el cdigo quedara 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 nmeros no decimales dentro de un rango y existen diferentes tipos de enteros clasificados segn su rango. A continuacin muestro una tabla con los tipos de datos enteros. Tipo Byte Word LongWord ShortInt SmallInt LongInt Int64 Integer Cardinal Rango de Valores 0 .. 25 0 .. 65535 0 .. 4294967295 -128 .. 127 -32768 .. 32767 -2147483648 .. 2147483648 -2Exp63 .. 2Exp63-1 -2147483648 .. 2147483648 0 .. 214 7483648 Formato 8 bits sin signo 16 bits sin signo 32 bits sin signo 8 bits con signo 16 bits con signo 32 bits con signo 64 bits con signo 32 bits con signo 32 bits sin signo

Por defecto las operaciones aritmticas con valores enteros devolvern un valor entero, hay que tener cuidado por que una variable de tipo entera no puede almacenar un dato de tipo real, ms 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 continuacin muestro una tabla con los diferentes tipos reales soportados por Object Pascal. Tipo Single Rango de valores Dgitos Tamao Significati en Bytes vos 4 6 8 8 10 8 8

1.5 * 10Exp-45 .. 3.4 * 7-8 10Exp38 2.9 * 10Exp-39 .. 1.7 * Real48 11-12 10Exp38 5.0 * 10Exp-324 .. 1.7 * Real 15-16 10Exp308 5.0 * 10Exp-324 .. 1.7 * Double 15-16 10Exp308 Extend 3.4 * 10Exp-4932 .. 1.1 19-20 ed * 10Exp4392 Comp -2Exp63 .. 2Exp63 -1 19-20 Curren -9223372036854775808 .. 19-20 cy 9223372036854775807

2

Manual Delphi

Ricardo E. Jasso Ponce

La declaracin de variables reales utiliza exactamente la misma sintaxis que la explicada para los nmeros 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 lgicas como verdadero o falso y en el Object Pascal existen cuatro que son: Boolean, ByteBool, WordBool y LongBool. El que se recomienda ms 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 continuacin te muestro su tabla. Tipo Boolean ByteBoolean WordBool LongBool Memoria Requerida en bytes 1 (Recomendado) 1 2 4

Se declaran como cualquier otra variable solo que el valor que pueden recibir es True o False. Ejemplo. Este cdigo 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 intil, pero es solo para ilustrar su manejo muy simplemente, tu eres quien le dars una verdadera aplicacin si tus problems lo requieren. Por lo pronto puedes experimentar cambiando la asignacin de compadre a False. Tipos de Carcter . . . Los tipos de carcter estn diseados para albergar caracteres segn un cierto cdigo numrico que usualmente es el ANSI que mediante palabras de 8 bits representa hasta 256 caracteres. A continuacin muestro su tabla. Tipo AnsiChar Carcter que contiene Un Caracter Ansi Memoria requerida en Bytes 1

2

Manual Delphi

Ricardo E. Jasso Ponce2 1

WideChar Un Caracter Unicode Char Un Caracter Ansi

Tipos Cadena de Caracteres . . . Tambin conocidos como String. Estas existen como tipos predefinidos que albergan la concatenacin de un determinado nmero de caracteres bueno es algo parecido a los arrays si as lo quieren ver. En seguida muestro la tabla con los diferentes tipos. Carcter que Longitud Mxima contiene AnsiStrin ~2Exp31 AnsiChar g Caracteres ShortStri AnsiChar 255 Caracteres ng ~2Exp31 String AnsiChar Caracteres WideStri WideCha ~2Exp30 ng r Caracteres Tipo 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 podramos accesar directamente a alguna posicin de la variable por ejemplo si a la variable Nombre nicamente quisiera concatenarle la letra B de la Variable Apellido lo hara 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 instruccin Array perteneciente a los datos compuestos, la cual permite declarar arreglos de una o varias dimensiones Memoria Hasta GB. 2 a 256 Bytes. 256 hasta 2GB. Hasta 2GB.

2

Manual Delphi

Ricardo E. Jasso Ponce

Sentencias de controlTodo programa esta constituido por decisiones y acciones que se ejecutan repetidamente en funcin del estado del programa y las sentencias de control, son las que nos permiten hacer esas cosas. Explicar las ms utilizadas. Condicion If ... Then : Las condiciones If sin duda son unas de las ms utilizadas y permite condicionar la ejecucin de un determinado cdigo al cumplirse una determinada condicin. La sintaxis seria como sigue: If Condicion Then Codigo1 Else Codigo2 Codigo1, se ejecutar cuando la condicin se cumple y Codigo2 cuando la condicin no se cumple. Pueden anidarse tantas sentencias if como necesites. Cuando los cdigos a ejecutar tanto para el Else como para el IF son ms de una instruccin se deben de poner entre un Begin y un End. Para que quede ms claro haremos un ejercicio ms practico, el cdigo ir en el evento Oncreate del Form. Se preguntarn por que utilizo ese evento bueno pues por que todava no les enseo 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 despus utilizo la funcin Randomize() la cual inicializa el motor de generacin de nmeros aleatorios luego asigno a numero el resultado que devuelva random(20) la cual es una funcin 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 expresin con un conjunto predeterminado de valores y ejecutar un cdigo determinado de acuerdo al resultado de la comparacin o expresin. Aqu tienes su sintaxis. Case Expresion Of Lista de constantes separadas por coms : Codigo; Valor Inicial .. Valor final : Codigo2; Else Codigo por Defecto; Hay va un ejemplo para que quede ms 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 dgitos 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 cdigo hasta que se satisfaga una cierta condicin, su sintaxis es de la siguiente forma: Repeat Codigo Until Condicion La condicin debe producir un resultado de tipo Booleano, cabe mencionar que en este tipo de ciclos el cdigo se ejecuta por lo menos una vez debido a que la condicin 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 verificacin del ciclo se realiza al inicio. Aqu tienes su sintaxis. While Condicin Do Codigo Si el cdigo es ms de una instruccin 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 cdigo anterior y aplicarlo a este ciclo. For ... Do : Nos permite repetir la ejecucin de un determinado cdigo 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 nmeros 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, declaracin de constantes, variables y sus sentencias de control. As que de aqu en adelante nos dedicaremos a ver cosas mucho ms interesantes, explotaremos la potencialidad de Delphi y empezaremos por ver los tipos de mensajes que Delphi permite realizar.

Mensajes en DelphiEs 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 Aplicacin) 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 ms 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 aplicacin, el texto del mensaje lo indicamos nosotros entre comillas simples y solo tiene un botn. Ejemplo: ShowMessage('Quiubule Familia').

2

Manual Delphi

Ricardo E. Jasso Ponce

ShowMessagePos . . . Es Parecido al anterior pero tiene dos valores ms que indican las coordenadas donde se mostrara el cuadro indicando primero el ancho y luego el largo. Debes tener cuidado pues la posicin se debe poner en Pixeles por lo tanto debes sabe el tamao de tu pantalla, esto lo logras haciendo una pequea llamada al Objeto TScreen.Width obtienesel ancho y con Screen.Height el Largo. Bueno como ejemplo podras poner en el evento Onclick de tu formulario el siguiente cdigo: ShowMessagePos ('Utilizando 3,Screen.Height div 3); Coordenadas', Screen.Width div

MessageDlg . . . Hasta ahora los tipos anteriores de mensajes no dejan que el usuario pues pueda tomar alguna decisin 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 segn una lista predefinida por Windows, los botones que se mostraran y la ayuda de la aplicacin que creemos si es que colocamos un botn 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 automticamente 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 cdigo 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 estdiale ms'); Si pusiste atencin te pudiste haber dado cuenta que MessageDlg devuelve el valor del botn 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 botn pulsado, de esa forma en el ejemplo cuando es pulsado el botn mbYes, el valor devuelto es mrYes. MessageDlgPos . . . Esta es una variante de la funcin 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 estdiale ms'); MessageBox . . . Es un tipo de mensaje que hace llamada a la Api de Windows sacndonos el titulo de los botones en espaol, claro si nuestro Windows esta en espaol. 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 tambin se controla el tipo de botn a poner y las combinaciones de las imgenes que pone Windows por defecto te las listo continuacin. 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 StandarEn esta ficha se encuentran los componentes ms utilizados y es la que esta activada cuando entramos a Delphi. Explicare nicamente los principales. Nota: Realizare algunos ejercicios durante el transcurso de la explicacin. Ficha Standar.

Empezaremos a partir del segundo componente. Image Component n e Descripcin

Es un componente no visual que permite MainMenu disear el men del formulario que si ser visual. Permite disear Mens contextuales o PopupMenu emergentes, que aparecern al pulsar el botn secundario del ratn. Label Es un cuadro de texto esttico, por lo tanto visualiza texto pero no puede ser

2

Manual Delphi

Ricardo E. Jasso Ponce

modificado. Es un cuadro de Edicin de Texto que Edit permite visualizar y modificar una lnea de texto. Es un Cuadro de Texto multilinea, se puede Memo visualizar y modificar varias lneas de texto. Es parecido al Bloc de Notas Es un Botton clsico de cualquier aplicacin Button Windows, no lleva ninguna imagen solo texto. Es una casilla de verificacin que permite ChechBox seleccionar y deseleccionar opciones. Botn de opcin 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 caractersticas de un ListBox y un Edit ComboBox permitiendo al usuario seleccionar un elemento. ScrollBar Barra de desplazamiento estndar. Funciona como contenedor de objetos, GroupBox permitiendo agrupar diferentes controles. Es un contenedor exclusivamente para los RadioGroup RadioButtons. Contenedor de objetos pero ms potente Panel 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 Aplicacin. Coloca un GroupBox en tu formulario, Dentro de el coloca dos etiquetas misms que en su propiedad Caption les pondras Valor uno y Valor dos. Despus pon dos Edit ve a su propiedad Text y qutales 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 crgalos hacia tu parte superior izquierda. Ahora en tu parte superior derecha pega un componente Label y en su propiedad Caption le pondrs Operacin, Despus coloca un componente ComboBox debajo del Label. Te vas a la propiedad Text del comboBox y Escribes el texto Suma. despus 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

escribirs los textos Suma, Resta en lneas o filas separadas. y das Ok a la ventana. Despus 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 operacin. Muy bien ahora pon un componente RadioGroup en la parte inferior izquierda, en su propiedad Caption pon color de ventana. Despus 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 irn 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 ratn, despus vete a la propiedad Caption y escribe &Salir. Ahora da click sobre el formulario para regresar a el. Ahora el diseo quedara como sigue

2

Manual Delphi

Ricardo E. Jasso Ponce

Ahora vamos con el cdigo. Vete al evento Onclick del Button1 que dice Calcular. dentro del pondremos el siguiente cdigo: 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 segn 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 operacin es necesario convertirlo por lo tanto los Edit los convierto a flotantes mediante FloatToStr(). Ahora el resultado ser un tipo de dato flotante para asignrselo al Label que es de tipo String tengo que convertirlo mediante la instruccin FloatToStr(); En lo que respecta al uso del ComboBox me sirve para que el usuario elija el tipo de operacin 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 maysculas si tu la escribes diferente tendrs que modificar las comparaciones en el If. Muy bien Ahora en el Evento Onclick del Button2 que dice Aplicar pon este cdigo. 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 opcin Salir de esta forma Delphi te creara el procedimiento Tform1.Salir1Click en el cual pondrs este cdigo. Application.Terminate;

2

Manual Delphi

Ricardo E. Jasso Ponce

Esta instruccin permite terminar correctamente la aplicacin y devolver la memoria a Windows. Ahora solo corre el programa con F9 y listo. Experimenta con l.

Ficha AdditionalContiene componentes que amplan los componentes de la estndar 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 despus presionando F1.

Imagen

Componen te

Descripcin

2

Manual Delphi

Ricardo E. Jasso Ponce

Es un Botton que se le puede aadir un grfico Bitmap. Contiene la propiedad BitBtn Kind que trae una lista de botones predefinidos con sus Bitmap. Es un botn 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 MskEdit datos mediante el formateo del texto como lo es la fecha, etc. Permite mostrar grficos como Image Bitmaps, iconos, Windows Metafiles, etc. Permite dibujar polgonos, crculos y Shape lneas. Bevel Es un rectngulo en 3D. Define un rea contenedora mayor al rea visualizada, automticamente al ScrollBox sobrepasar el rea salen las barras deslizadoras. Es un ListBox solo que aade 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 ms StaticText propiedades modificables. Se utiliza para crear barras de ControlBar Herramientas acoplables. Util para crear diferentes tipos de Chart grficos. Bueno ahora es el momento de realizar algn ejercicio en donde utilicemos algunos componentes descritos. Crea una nueva aplicacin, 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 MskEdit, Da un Click sobre l con el botn secundario del ratn, te saldr un men desplegable elige la opcin Input Msk Editor ( Esto tambin lo puedes realizar en la propiedad EditMsk), te saldr una venta con mscaras predefinidas. Elige la que dice Date, si quieres la fecha en formato MM/DD/AA, esta un botn que dice Msks, 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 mscara para la fecha. Ahora Pon este cdigo en el evento OnCreate de tu Form. MskEdit1.Text := DateToStr(Date); La funcin 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 MskEdit. 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 opcin 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 opcin Load y ve al directorio images\buttons de Delphi, en este directorio tendras una serie de grficos 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 quedara la parte visual del formulario.

2

Manual Delphi

Ricardo E. Jasso Ponce

Ahora en el Evento Onclick del BitBtn se pondra: 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 cdigo generamos un numero aleatorio de entre cuatro nmeros incluyendo el cero, y segn 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 forms del Shape. Bueno con esto hemos concluido este pequesimo ejercicio. Por ahora estamos haciendo cosas muy simples les prometo que posteriormente aremos algo ms complicado mientras tanto pasaremos a la siguiente ficha.

2

Manual Delphi Ficha Win32

Ricardo E. Jasso Ponce

Contiene componentes que permiten la creacin de aplicaciones que cumplen con las especificaciones de Windows 95 o superior. A continuacin se muestra.

Imagen

Componente TabControl PageControl ImageList

RichEdit

TrackBar ProgresBar Animate DateTimePicker MonthCalendar StatusBar ToolBar CoolBar

Descripcin Crea solapas para cuadros de dialogo multipgina. Crea una rea multipgina, en donde cada pagina es accesible desde las misms solapas del componente. Define una matriz de imgenes del mismo tamao misms que son accesibles a travs de su ndice. Es una caja de texto que acepta el formato de texto enriquecido, por lo tanto a nivel de palabra se le puede modificar el tamao, color, etc. Es una barra de desplazamiento de Windows, que nos permite desplazar el control por un conjunto de valores. Es una barra de progreso estndar que nos indica el avance de un determinado proceso. Muestra secuencias de BitMaps o Archivos Avi sin sonido. Despliega fechas y permite seleccionarlas, tambin permite introducirlas. Nos presenta el calendario por meses. Es una barra de estado clsica de Windows. Permite crear una barra de Herramientas. Es un contenedor de Barras de herramientas misms 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 aplicacin, 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 podrs agregar imgenes, dale al botn que dice Add, vete a la carpeta Images/Buttons de Delphi, y agrega el archivo que dice DoorOpen, despus que lo abres, regresas a la ventana anterior y te mandara un mensaje en ingles que dice la dimensin de la imagen es demsiado grande y pregunta si la divide en dos, dale que si, te pondr dos imgenes, hay un botn que dice Delete, borra la segunda imagen con ese botn. Ok. Ahora as como agregaste esta imagen quiero que agregues dos ms, bueno la imagen del botn te la dejo a tu gusto Ok. el caso que te tienen que quedar tres imgenes enumeradas del 0 al 2. Despus de agregar las imgenes solo da click al botn 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 imgenes que creamos). Ahora dale Click al Componente con el botn secundario del ratn y te saldr un men emergente, selecciona la opcin New Button, con esto te crea un botn en en el componente ToolBar. Ok. Ahora vete a la propiedad Hint del botn que acabas de crear y ponle Salir, ve a la propiedad ShowHint y ponla en True. Ok. Despus ve a la propiedad ImageIndex y ponle 0 (A este botn le pondremos la imagen que este en el ndice 0). Ahora nuevamente con el botn secundario del ratn dale click al ToolBar y ahora eliges la opcion NewSeparator, con esto te crea un botn separador, a este botn no le haremos nada Ok. De igual forma como creaste el primer botn crea dos ms y en su Hint pondrs Animacin, 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 botn secundario del ratn, en el men emergente selecciona New Page, con esto te a creado una nueva pagina, ahora vete a la propiedad Caption y ponle Animacin. Ahora si sobre esa nueva pagina pegaras un componente Animate, vete a la propiedad CommonAvi y selecciona el valor aviCopyFile. Despus 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 botn secundario del ratn dale nuevamente Click y elige la opcin 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 diseo estara ms o menos as.

2

Manual Delphi

Ricardo E. Jasso Ponce

Muy bien ahora vamos a introducir el cdigo, empezaremos por los botones de la barra de herramientas. Dale Doble Click al primer botn que le pusimos Salir, con esto te genera automticamente el evento Onclick, puedes hacerlo de la otra forma que tu ya sabes no importa. Bueno pon este cdigo. Application.Terminate; Ahora en el Tercer botn que le pusimos Animacin pondrs este otro cdigo. PageControl1.ActivePageIndex := 0; Como puedes ver las paginas del PageControl tienen un ndice empezando de cero as es que solo es cuestin de poner que pagina es la que quieres activar. En el ultimo Botn (Calendarios) pondrs este cdigo. PageControl1.ActivePageIndex := 1; Muy bien ahora selecciona la pagina que dice Animacion del PageControl. en el evento Onclick del Button Animar pondrs este cdigo. Animate1.Active := True; Por ultimo en el evento Onclick del botn Detener pon este cdigo. Animate1.Stop;

2

Manual Delphi

Ricardo E. Jasso Ponce

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

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

Imagen Componente

Descripcin Es un temporizador que ejecuta un evento Timer cada intervalo de tiempo programado. PaintBox Define una rea en la que se puede dibujar. Es un Panel de control del reproductor de MediaPlayer vdeo 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. Establece una conexin DDE como cliente a DDEClientConv un servidor DDE. Especifica los datos que sern enviados a DDEClientItem un servidor DDE. DDEServerCon Establece una conexin como servidor DDE. v Especifica los datos que sern enviados a DDEServerItem 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 vdeo casi casi profesional....... Bueno ustedes son los que retocaran algunos detalles. Reproductor de Vdeo Primeramente disearemos el aspecto visual despus nos iremos con el cdigo Ok. Crea una nueva Aplicacin. Al Caption del Form ponle Mi Reproductor de Vdeo. Ve a la ficha System y coloca un componente OleContainer que abarque una parte considerable del formulario. Ve a la ficha Estndar 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 dems 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), agrgale una imagen (ya sabes como) y en la propiedad caption ponle Abrir. Ve a la ficha estndar 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 pnselas 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 diseo. 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 tpica 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 Escribirs Archivos Avi, en Filter escribiras *.Avi, nuevamente en una nueva fila escribe en Filter Name Todos los Archivos y en Filter *.*. Esa ventana quedara de la siguiente forma.

2

Manual Delphi

Ricardo E. Jasso Ponce

Muy bien Ahora ve a la ficha Win32 y coloca un componente StatusBar. Automticamente se colocara en la parte inferior del formulario. Vete a la propiedad SimplePanel y ponla en True, Despus 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 maysculas o minsculas son sensibles en las comparaciones. Muy bien si has hecho todo lo que te dije el Formulario tiene que lucir ms o menos As.

Ahora viene lo interesante el cdigo. Ojo el cdigo 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 cdigo 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, despus simplemente lo abrimos. Si te fijas la propiedad DisplayRect permite indicar el tamao en que queremos visualizar el Vdeo que por cierto es el tamao del componente OleContainer. Despus ponemos visibles los Labels 3 y 4, en estos se muestra el tiempo total del vdeo y en el otro se mostrara el tiempo en el que va la reproduccin. Ahora pondrs este cdigo en el evento OnTimer del componente Timer. Puedes irte al inspector de Objetos o simplemente dale Doble Click con el ratn 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 cdigo cada segundo. Primeramente verifica el StatusBar, si la propiedad simpletext es diferente a Inactivo ejecutara el cdigo 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 duracin del archivo, calculamos su posicin y las pegamos en los Labels. Ha y desde luego vamos recorriendo el ScroolBar. Hasta ahora con el cdigo que hemos puesto, nuestra aplicacin es capaz de reproducir vdeo y esta bien pero que tal si le damos un toque ms especialon como que al presionar las teclas Alt + Enter, el vdeo se vea a pantalla completa y de igual forma al volverlas a presionar regrese a pantalla normal. Bueno para lograr eso pon este cdigo 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 ms cdigo verdad, pues si pero es que para reproducir el vdeo 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 cdigo debes saber que he declarado dos variables de tipo global para este formulario, las variables son Ancho y Alto, las utilizo para almacenar el tamao 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 tamao original. Las variables Globales del Form las declaras en la clusula Var del Unit del Form. esta justo arriba de la clusula Implementation. mira para que te ubiques te muestro la parte en donde tienes que declararlas. Ok. var Form1: TForm1; Ancho : Integer; Alto : Integer; implementation {$R *.dfm} Como ves estn casi al inicio del Unit. S puedes encontrarlo y declararlas verdad. yo se que si. Muy bien prosiguiendo con la explicacin, 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 misms

//Aqui estan declaradas

2

Manual Delphi

Ricardo E. Jasso Ponce

que tienen las dimensiones del formulario respectivamente. Despus Pongo la propiedad Visible en False de todos los componentes visuales. Enseguida entenders por que. Hay te va una nota acerca del MediaPlayer, no nada ms puedes reproducir vdeo 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 vdeo 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 bsicamente esto.

Bases de DatosVaya por fin hemos llegado a una parte que tal vez estabas esperando. Antes de empezar quiero adelantarles que durante los captulos 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 independizndolas del gestor de bases de datos. El BDE sirve como traductor entre nuestra aplicacin y las bases de datos que utilizamos funcionando tambin 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 aplicacin realiza. Delphi posee una herramienta que nos permite disear nuestras bases de datos, es un programa llamado Database DeskTop. Primeramente mostrare las fichas de componentes ms comunes relacionados con el manejo de bases de datos

2

Manual Delphi Ficha Data Access

Ricardo E. Jasso Ponce

Contiene componentes para realizar conexiones con las bases de datos y obtener la informacin que en ella se almacena. A continuacin se muestra.

Imagen

Componente DataSource

Descripcin

Realiza las conexiones a las bases de datos. Permite el acceso a datos tanto en una aplicacin ClientDataS estndar como el acceso et desde clientes en sistems distribuidos.

Ficha Data ControlsEn esta ficha se encuentran componentes similares a los de la ficha standard y Additional pero que estarn ligados a bases de datos permitiendo con esto trabajar con la informacin almacenada en ellas.

Imagen

Componente DbGrid DbNavigator DbText

Descripcin Presenta los datos en una rejilla de filas y columnas. Posibilita la navegacin por los registros de una tabla permitiendo su navegacin, modificacin, eliminacin. Label vinculado a bases de datos.

2

Manual DelphiDbEdit

Ricardo E. Jasso Ponce

Cuadro de texto vinculado a bases de datos. Memo vinculado a bases de DbMemo datos. Image vinculado a bases de DbImage datos. ListBox Vinculado a bases de DbListBox datos. ComboBox vinculado a bases DbComboBox de datos. CheckBox vinculado a bases DbCheckBox de datos. RadioGroup vinculado a bases DbRadioGroup de datos. ListBox que presenta datos de DbLookupListBo 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 presentacin de datos y DbCtrlGrid permite que el rea acte como un Dbgrid. Chart vinculado a bases de DbChart datos.

Ficha BDEEsta ficha contiene componentes que habilitan la conexin a bases de datos utilizando el BDE engine de Delphi.

Imagen Componente Table Query

Descripcin Permite la conexin a una tabla de una base de datos. Permite crear y ejecutar 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 sern enviados al servidor. Permite realizar actualizaciones UpdateSQL 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 travs del BDE.

Database DeskTopDelphi nos permite crear bases de datos en tiempo de ejecucin mediante cdigo, pero tambin nos brinda la posibilidad de crearlas en tiempo de diseo mediante el Database Desktop. Esta herramientas nos permite en realidad hacer otras cosillas, pero no quiero adentrarme mucho en, solo quiero ensearles lo bsico 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 aclaracin cuando es necesario utilizar algn otro tipo de tabla. OK. Muy bien para entrar al DataBase DeskTop lo podemos hacer de dos forms, la primera es accesando desde el men inicio/programs/Delphi/Database DeskTop. La otra es Dentro de Delphi te vas al Men Tools y encontraras la opcin 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 dnde est tu tabla como por ejemplo c:\programa\Tablas, ahora el detalle est que cuando pasas tu aplicacin a otra unidad debes cambiar la ruta a cada tabla y recompilar. todo eso se soluciona pues utilizando alias, de hecho en los programs instaladores como el Install Shield te permite crear el alias que en tu aplicacin 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 despus quieres hecharles un ojillo primo. Muy bien vete al men que dice File, despus al New y por ultimo Table, de esta forma creamos nosotros una tabla, pero antes nos presenta una pequea 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. despus 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 sern: Clave, producto, proveedor, precio y mnimo. Despus 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 tamao del campo, eso se lo indicamos teclendolos directamente. Por ultimo est la leyenda Key, sirve para indicar cuales campos sern nuestras claves primarias. para elegir un campo como clave primaria posicionate en Key y presiona la barra espaciadora, se pondr un asterisco en seal de que es clave primaria. Ahora quiero que hagas la siguiente estructura: Field Name Clave Producto Type I (Long Integer) A (Alpha) 40 Size Key * (Clave Primaria)

2

Manual DelphiCantidad Precio Minimo N (Numeric) $ (Money) I (Integer)

Ricardo E. Jasso Ponce

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 ms detalles, solo te digo que experimentes un poco con ellas. No vamos a crear algn ndice secundario en esta tabla por que usaremos algunas sentencias Sql en bsquedas por producto con propsito de aprendizaje, por lo tanto no es necesario crearlo. Muy bien ahora solo quiero que des Click en el botn 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 crala. 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 Fecha Ingreso Type D $ Size Key *

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

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 generacin 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 Componente TTable

Ricardo E. Jasso Ponce

Es un componente no visual y se encuentra en la ficha BDE. Cuando se trabaja con una base de datos, el principal responsable de prcticamente 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 forms de indicarle la base de datos que usaremos, una es dndole toda la ruta que en nuestro caso seria C:\EJEMPLO o indicando el alias que se haya definido en el sistema que es lo ms recomendable utilizar los alias pero bueno esa es otra historia digiera chonita. Bueno despus 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 diseo 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 operacin como una apertura, cierre, lectura, etc., los cuales empiezan por la palabra Before, luego estn los eventos que se producen en el momento y cuyo nombre empieza por On y por ultimo los eventos que se producen despus, cuyo nombre empieza por After . A continuacin te listo los principales eventos del componente Table. Se genera despus del borrado de un registro AfterEdit Se genera despus de editar un registro AfterInsert Despus de Insertar After Post Despus de grabar los datos BeforeCancel Antes de cancelar la operacin BeforeClose Antes de que se cierre la tabla BeforeDelete Antes de borrar un registro AfterDelete

2

Manual DelphiBeforeEdit BeforeInsert BeforeOpen BeforePost

Ricardo E. Jasso Ponce

Antes de editar el registro actual Antes de insertar un registro Antes de abrir la tabla Antes de guardar los datos Se genera cuando se va a calcular el valor OnCalcFields 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 aade un registro d Cuando hay un error durante el grabado OnPostError de datos Ahora te listare las operaciones ms comunes que se realizan en un componente Ttable. Open Close Edit Insert Post Cancel Delete First Last Next Prior Se abre la tabla Se cierra la tabla Para editar el campo actual Aade datos a la tabla Graba los datos Cancela la operacin actual Borra el registro actual de la tabla Se va al primer registro de la tabla. Se va al ultimo registro de la tabla. Avanza al siguiente registro. Retrocede un registro.

Cuando se manejan bases de datos es comn que necesitemos acceder a los sus campos mediante cdigo y precisamente un mtodo 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 fcil 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 fsica, posteriormente escribimos FieldByName en el cual dentro de parntesis 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 posicin de la lnea de cdigo 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 vaca. 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');

Ordenacin 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 ejecucin tambin se puede cambiar el ndice de ordenacin, por ejemplo el cdigo para ordenar la tabla Inventario a travs 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.

Bsquedas de Registros . . .El componente Table proporciona una serie de herramientas para realizar bsquedas de registros con la limitacin de que solo se

2

Manual Delphi

Ricardo E. Jasso Ponce

realizaran con campos indexados, yo utilizare el mtodo ms comn y menos problemtico que es el mtodo directo. Mediante el mtodo 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 coms, regresa un valor Falso O Verdadero dependiendo si tuvo xito o no en la bsqueda. Por ejemplo en la tabla Inventarios para buscar un producto se escribira el siguiente cdigo. 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 parntesis 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 mtodo 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 ms cercano al buscado se pondra la siguiente Instruccin. If Table1.FindKey([Edit1.Text]) = True Then ShowMessage('Producto Localizado') Else Table1.FindNearest([Edit1.Text]); Como puedes ver esto lo hice utilizando la instruccin FindNearest. Aunque Ami en lo particular me gusta utilizar este mtodo y cuando necesito realizar una bsqueda por un campo que no es ndice utilizo el SQL pues... no le aunque les explicare el otro mtodo existente para busquedas. El otro mtodo de bsquedas es Locate, el cual nos permite buscar por una condicin en un columna o por varias columnas. Locate es una funcin que devuelve True o False segn 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

condicin. Para usar este mtodo se han de pasar una serie de parmetros y a continuacin te muestro su sintaxis: Locate(const KeyFields : string; const KeyValues : Variant; Options : TLocateOptions) El primer parmetro es el campo o campos por los cuales queremos hacer la bsqueda, por ejemplo en nuestra tabla Inventario hay un campo en el cual guardamos el nombre de los productos y siqueremos realizar una bsqueda por este campo es en este primer parmetro donde debemos poner el nombre del campo. El segundo contiene la condicin, por ejemplo si estamos buscando productos segn su proveedor es aqu en donde lo pondramos. El ejemplo quedara as: Table1.Locate ('Producto','CocaCola',[]); Por ltimo esta Options, el cual indica como se ha de realizar la bsqueda, si se ignoran las maysculas, si se hacen bsquedas parciales en los campos Alfanumricos, etc, esto quiere decir que se mostraran las filas que contengan CocaCola en sus respectivos campos adems 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.

DataSourceEl 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 segn 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 comn a todos los controles. La propiedad ms 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 ms comunes sin duda es el Dbgrid el cual esta constituido por un conjunto de rejillas a travs de las cuales nos presenta la informacin de las tablas. A continuacin te lo explicare.

Componente DBGrid . . .Nos sirve para visualizar informacin almacenada en una tabla, pero aparte de eso podemos tambin realizar inserciones, ediciones, modificaciones, etc. y cuenta con varias propiedades y mtodos 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 pondra Form1.DataSource1 y presto es todo. Despus existen otras propiedades interesantes como Options que a continuacin describo. El usuario puede editar los datos sobre la rejilla dgAlwaysShowEdit La rejilla esta en modo edicin, no or hace falta pulsar F2 dgTitles Muestra los ttulos de las columnas Se muestra un indicador para dgIndicator conocer el registro activo Permite cambiar el ancho de las dgColumnResize columnas Dibuja lneas de separacin entre las dgColLins columnas Dibuja lneas de separacin entre las dgRowLines filas Se puede navegar por el dgTabs componente usado la tecla Tab Selecciona filas completas en lugar dgRowSelect de filas Permite borrar registros, mostrando dgConfirmDelete un mensaje Cancelas las inserciones vacas al dgCancelOnExit salir del control Permite seleccionar mltiples filas a dgMultiSelect la vez dsEditing

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 estn ligadas al la columna. Cuando no se definen columnas en un DBGrid automticamente 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 botn secundario y elegir la opcin Columns Editor del men emergente, saldr la siguiente ventana.

Para este pequeo 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 vaco 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 tambin puedo cambiar el orden de las columnas arrastrando con el puntero del ratn a la posicin 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 brindndonos con esto ciertas opciones que podremos modificar, a continuacin te las describo. Alignment Button style Color DropDown Rows FieldName Font PickList ReadOnly Width Title Alineacin de la columna Permite desplegar un lista con valores, o un botn Color de fondo de la columna Nmero de filas desplegables Nombre del campo que se visualiza Fuente con la que se muestra la informacin de la columna Lista de valores que aparecern al desplegar la columna Esta columna solo es de lectura Ancho de la columna en Pixels Ttulo de la columna

Ahora la opcin Title tiene ciertas propiedades que son interesantes es por eso pariente que las describo. Alignme Alineacin de la cabecera de nt columna Texto que muestra la cabecera de la Caption columna Color Color fondo de la cabecera Fuente con la que mostrara la Font La propiedad PickList es cabecera 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 ratn 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 informacin y realizar operaciones con los campos del DBGrid los mtodos ms comunes son el DbGrid1.Columns[nmero_columna].Propiedad y

2

Manual Delphi

Ricardo E. Jasso Ponce

DbGrid1.Fields[nmero_columna].propiedad. Todo depender de que tipo de operacin deseo realizar.

DBNAvigator . . .Este control tiene incorporada las funcionalidades ms 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 edicin, insertar registros, etc. su propiedad ms importante es la DataSource en la cual se tiene que indicar el DataSource sobre el cual trabajara. Describo los botones del navegador. Botn Mtodo Descripcin Salta al primer registro de la tabla. Desactiva los botones First y prior y activa Next y Last si no lo estaban. Retrocede al registro anterior del actual, activa Next y Last. Avanza al registro posterior al actual, activa First y Prior. Salta al ultimo registro de la tabla, desabilita Next y Last y activa First y Prior. Inserta un nuevo registro en la posicion anterior al registro actual, modifica el estado de la tabla a modo de Edicion. Borra el registro actual y se posiciona en el registro siguiente Pone la tabla en modo de edicin, con lo cual se pueden modificar los datos del registro. Escribe en la base de datos los cambios realizados sobre el registro activo. Cancela la edicin del registro activo y

nbFirst

First

nbPrior nbNext

Prior Next

nbLast

Last

nbInsert

Insert

nbDelete

Delete

nbEdit

Edit

nbPost nbCancel

Post Cancel

2

Manual DelphinbRefresh Refresh

Ricardo E. Jasso Poncerecupero los datos anteriores. Refresca la tabla o la 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 botn, si desactivaste algn botn su leyenda solo djala 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 colcale un DbNavigator y listo podrs 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 diseado tanto para presentar datos como para introducir datos en una tabla y su propiedad ms 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 podra ser ReadOnly la cual recibe un valor Boolano y sirve para poner el campo en solo lectura desabilitando de esta forma que se capture informacin sobre el. Las dems propiedades son iguales a las del Edit. El componente DBText esta diseado solo para presentar informacin. Tiene el aspecto de un Label solo que a diferencia de este ultimo, mostrara la informacin contenida en un registro de la base de datos, no se puede introducir informacin en un DBText. Sus propiedades ms interesantes son el DataSource y DataField, las cuales funcionan igual que las del DBEdit. NOTA: Todos estos componentes funcionan a travs de las propiedades DataSource y DataField, solo es cuestin que indagues sobre ellos un poco y tu mismo descubrirs su funcionalidad.

2