Você está na página 1de 99

DELPHI7 TUTORIAL

UNIDAD I PROGRAMACION VISUAL ELEMENTOS BASICOS


1.- INTRODUCCION DELPHI
Los nuevos sistemas de informacin son costosos en tiempos y recursos, la solucin
moderna de sistemas de informacin exigen nuevas herramientas y metodologas para
resolver rpida, econmica y eficiente los problemas de informacin planteados por las
organizaciones.
Aun mas el pleno potencial del hardware no es aprovechado plenamente y existe un
considerable retraso con el software y sus aplicaciones, generando lo que se conoce
como crisis del software.
En programacin tradicional, modular o estructurada un programa describe una serie de
pasos a ser realizados para la solucin de un problema, es decir es un algoritmo.
En programacin orientada a objetos ( OOP ) un programa es considerado como un
sistema de objetos interactuando entre s, ambientes de desarrollo visuales facilitan aun
ms la construccin de programas y solucin de problemas, porque permiten abstraer al
ingeniero de software de todo el GUI (interfase grfica) del problema, que constituye
ms del 60% del cdigo normal de un programa.
Es decir, en programacin modular o estructurada un problema sencillo de informacin
es descompuesto en una serie de mdulos(llamados procedimientos o funciones) donde
cada uno de ellos realiza una tarea especfica, por ejemplo uno de ellos captura los
datos, otro resuelve operaciones, etc.
En OOP todo problema aun aquellos sencillos de informacin, se consideran y
resuelven como mdulos de cdigo gigante (clase) que contiene todo el cdigo
necesario(variables, procedimientos, funciones, interfaces, etc.) para solucionar el
problema.
En programacin visual( que tambin es heredera de OOP ),la interfase con el
usuario( pantallas) son generadas por el propio compilador y el ingeniero de software
solo se concentra en resolver el problema planteado.
Borland Deheli es un compilador que permite usar cualquiera de los tres enfoques en la
solucin de problemas de informacin que puedan y deban ser resueltos empleando el
computador y el lenguaje.
Para propsitos de aprendizaje usaremos el tercer enfoque, es decir programacin en
ambientes visuales y usando el lenguaje de programacin Borland Delphi
2.- BORLAND DELPHI MODELO DE SOLUCION

En general un problema de

informacin es posible entenderlo, analizarlo y descomponerlo en todos sus

componentes o partes que de una u otra manera intervienen tanto en su planteamiento


como en su solucin.
Una herramienta rpida que nos permite descomponer en partes un problema para su
solucin, es el llamado modelo de solucin, este consiste de una pequea caja que
contiene los tres elementos ms bsicos en que se puede descomponer cualquier
problema sencillo de informacin, estas tres partes son:
1. LA PRIMERA PARTE son todos los datos que el computador ocupa para
resolver el problema, estos datos son almacenados internamente en la memoria
del computador en las llamadas variables de entrada.
2. LA SEGUNDA PARTE son todas las operaciones generalmente algebraicas
necesarias para solucionar el problema, generalmente esta parte del modelo es
una formula (o igualdad matemtica, ej. X= y + 5).
3. LA TERCERA PARTE es el resultado o solucin del problema que
generalmente se obtiene de la parte de operaciones del modelo y dichos datos
estn almacenados en las llamadas variables de salida.
En resumen para todo problema sencillo de informacin es necesario plantearse las
siguientes preguntas:
Que datos ocupa conocer el computador para resolver el problema y en cuales variables
de entrada se van a almacenar ?
Que procesos u operaciones debe realizar el computador para resolver el problema
planteado ?
Que informacin o variables de salida se van a desplegar en pantalla para responder al
problema planteado originalmente?
Como nota importante no confundir los trminos datos, variables e informacin;
Datos se refiere a informacin en bruto, no procesada ni catalogada, por ejemplo
Tijuana, calle primera # 213,15 aos, $2,520.00, etc.
Variables es el nombre de una localidad o direccin interna en la memoria del
computador donde se almacenan los datos, ejemplo de variables para los casos del
inciso anterior, CIUDAD, DIRECCION, EDAD, SUELDO, ETC.
Informacin son datos ya procesados que resuelven un problema planteado.
EJEMPLO DE MODELO DE SOLUCION
Construir un modelo de solucin que resuelva el problema de calcular el rea de un
tringulo con la formula rea igual a base por altura sobre dos.
Variable(s) Entrada
BASE ALTURA

Proceso u operacin
AREA = BASE * ALTURA 2

Variable(s) salida
AREA

PROBLEMA 2.- CONVERTIR LA EDAD EN AOS DE UNA PERSONA A MESES.


PROBLEMA 3.- CONVERTIR PESOS A DOLARES.
PROBLEMA 4.- CALCULAR EL AREA DE UN CIRCULO CON LA FORMULA

PROBLEMA 5.- EVALUAR LA FUNCION


VALOR DE X.

PARA CUALQUIER

Observar para el caso de constantes fijas o conocidas (PI) no se debe dar como dato de
entrada su valor, en cambio colocar directamente su valor dentro de la formula, en la
parte de operaciones del problema.
Pero recordar tambin que existirn problemas sencillos donde:

No se ocupan entradas o no se ocupan operaciones, pero todos ocupan salida.

Una formula grande o muy compleja puede ser ms segura y fcil de resolver, si
es descompuesta y resuelta en partes, juntando al final los parciales para obtener
el resultado final.

Un problema puede tener ms de una solucin correcta.

El problema no esta suficientemente explicado o enunciado, entonces,


estudiarlo, analizarlo y construirlo de manera genrica.

TAREAS BORLNAD DELPHI


Construir los modelos de solucin de los siguientes problemas:
PROBLEMA 6.- Convertir millas a kilmetros(caso normal)
PROBLEMA 7.- Convertir 125 metros a centmetros(no ocupa entradas)
PROBLEMA 8.- Se calcula que en promedio hay 4.7 nidos en cada rbol en la UABC,
tambin se calcula que en cada nido existen un promedio de 5.8 pjaros, se pide calcular
la cantidad total de nidos y de pjaros en los 227 arboles que existen en la UABC. (no
ocupa entradas)
PROBLEMA 9.- La gorda Sra. Lpez y sus 8 hijos solo compran una vez al mes su
mandado en conocido supermercado, en dicha tienda el kilogramo de frijol cuesta
$8.75, el paquete de tortillas cuesta $3.55 y el frasco de caf vale $14.25, si solo
compran de estos tres productos para su mandado, calcular su gasto total. ( problema no
claro)
PROBLEMA 10.- Capturar y desplegar los cinco datos mas importantes de un
automvil(no ocupa operaciones)

PROBLEMA 11.- La distancia Tijuana - Ensenada es de 110 kilmetros. Si un


automvil la recorre a una velocidad constante de 30 millas por hora, cuanto tiempo
tarda en llegar. ( 1 milla = 1.609 Km.) (dos maneras correctas de
resolverlo).
PROBLEMA 12.- Evaluar la funcin
normal).

para cualquier valor de x.(caso

PROBLEMA 13.- Evaluar la funcin


ocupa entradas).

para cuando x vale 4 . (no

14.- Evaluar el factorial de cualquier numero usando la formula: n!=n!-1


15.- La distancia que recorre un auto es de 50 kms y su velocidad es de 30 millas por
hora Cuanto tiempo tardara en llegar?
16.- Encontrar la derivada de x para cualquier valor con la formula(d/dx(x)=1)
17.- Calcular l interes que gana un capital de x pesos a una tasa de interes del 15%
annual en un periodo de n aos.
18.-Que aceleracion tiene un tren que parte de tijuana a 10 km/hr y pasa por ensenada
una hora despues a 50 km/hr.
19.- Calcular el numero de aulas en una escuela que tiene 10 edificios y cada edificio 3
pisos y cada piso 5 aulas, excepto un edificio que solo tiene dos pisos.
20.- Si en una escuela hay 30 maestros y 15 son hombres que atienden a 10 alumnos
cada uno. Cuantas maestras hay?
21.- Calcular la corriente de un circuito con un voltaje de 15v y una resistencia de 6
ohms. Formula (I= V/R)
22.- Calcular la normal estandar(z) dados los datos por el usuario: X=dato, =media,
d=desviacion. Formula (Z = X-M / d)
23.- Dado un numero(N) cualesquiera obtener su raiz y potencia cuadrada .
24.- Determinar la media de 5 numeros diferentes.
25.- Determinar la velocidad v requerida para recorrer una distancia d en un tiempo t .
Formula (V = d * t)
26.- Determinar la pendiente de una recta. Formula (y = m x + b)
27.- Calcular la funcion de y= x + 8x + 3 para cualquier x
28.- Convertir minutos a horas.

29.- Aplicar la formula general para a=1, b=2, c=3.


30.- Se desea instalar un cable de red, el cliente pide 30 pies, considerando que se
venden en metros, cuantos debera comprar.
31.- Un campesino siembra trigo en un area cuadrada de 25 mts., cual es el largo del
cerco frontal en cms.?
32.- Resolver x + 15x - 8 para cualquier variable (X).
33.- Convertir C a F.
34.-Si cada salon de la escuela tiene 40 alumnos y son 30 salones Cuantos alumnos son
en toda la escuela?
35.- Si Juan trabaja 5 dias a la semana y descansa 2 Cuantos dias trabajo en 4 aos?
36.- Si en una oficina se procesan 20 facturas cada 10 minutos cuantas se procesaran si
se trabajan 5 horas?
37.- Si una empresa tiene _ de activo y un pasivo de _ Cual es su capital?. Formula (C
= A-P)
38.- Calcule el voltaje de un circuito dada una intensidad I y una resistencia R. Formula
(V=IR)
39.- Calcule la frecuencia de una onda que circula con un tiempo t. Formula (F=1/t)
40.- Calcule la potencia de un circuito con un voltaje V y una intensidad I. Formula (f =
VI)
41.- Calcule el total que tendra que pagar una persona que va al cine dependiendo del
no. de boletos a comprar y el precio.
42.- Calcule las anualidades que tendra que pagar una persona que pidio un prestamo.
Dependiendo del tiempo que el elija y el interes por ao. Formula
(Anualidad=(Prestamo/Tiempo)+interes)
43.- Determinar cuanto ganara una persona en base a la horas trabajadas. Tomando en
cuenta el pago por hora.
44.- Convertir horas a segundos.
45.- Calcular la fuerza. Formula (fuerza = trabajo / tiempo)
3.- BORLAND DELPHI BUILDER VARIABLES
Identificadores son conjuntos de letras y/o nmeros que se utilizan para simbolizar
todos los elementos que en un programa, son definibles por el usuario (programador o

ingeniero de software) del mismo, como son las variables donde se almacenan datos,
funciones( pequeos mdulos con cdigo), etiquetas, clases, objetos, etc.
En BORLAND DELPHI un identificador es una palabra compuesta de letras y/o
nmeros de hasta 32 caracteres significativos, empezando siempre con una letra.
Una variable se define como un identificador que se utiliza para almacenar todos los
datos generados durante la ejecucin de un programa.
Existen ciertas reglas en cuanto a variables:

Claras y con referencia directa al problema.

No espacios en blanco, ni smbolos extraos en ellas.

Se pueden usar abreviaturas, pero solo de carcter general.

No deben ser palabras reservadas del lenguaje.


Ejemplos de buenas variables:
Nombre, Edad, SdoDiario, IngMensual, Permetro, Calif1, etc.
4.- BORLAND DELPHI TIPOS DE DATOS
A toda variable que se use en un programa, se le debe asociar (generalmente al principio
del programa) un tipo de dato especfico.
Un tipo de dato define todo el posible rango de valores que una variable puede tomar al
momento de ejecucin del programa y a lo largo de toda la vida til del propio
programa.
Los tipos de datos ms comunes en BORLAND DELPHI son:
TIPO
char
byte
integer
Real
Boolean
shortint
word
longint
String

RANGO
Caracter ASCII
0 a 255
-32,768 a 32,767
1E-38 a 1E+38
TRUE o FALSE
-128 a 127
0 a 65535
-2147483648 a 214748364
Cadena caracteres

Para el caso de strings se prodra usar cualquiera de los dos siguientes formatos:
Var

Nombre:string;
Carrera:string[30];
Para el primer caso delphi pascal reserva 255 bytes de memoria, para el caso de carrera
pscal solo reservara 30 bytes, es obvio cual de los dos casos es mas eficiente.
TEMA 5: OPERADORES ARITMETICOS BORLAND DELPHI
Un operador es un smbolo especial que indica al compilador que debe efectuar una
operacin matemtica o lgica.
DELPHI reconoce los siguientes operadores aritmticos:
Operador
+
*
/
Div
Mod

Operacin
SUMA
RESTA
MULTIPLICACION
DIVISION
DIVISION ENTERA
MODULO O RESIDUO

Como nota importante a recordar siempre;


Si se usa el operador DIV en problemas de divisin entre enteros, pascal trunca la parte
residual, es decir;
// rea de declaracin de variables
real a;
// rea de operaciones
a := 10 div 4;
// rea de despliegue de resultados
desplegar a; -> En pantalla sale ( 2.000000 )

El problema no es el tipo real, sino que por definicin de la divisin entre enteros pascal
trunca la parte residual.
El operador (%) devuelve el residuo entero de una divisin entre enteros, ejemplo;
// rea de declaracin
integer alfa;
// rea de operaciones

alfa := 23 mod 4;
// rea de despliegue
desplegar alfa; -> El resultado en pantalla es 3
Otro ejemplo;
alfa := 108 mod 10;
desplegar alfa; -> El resultado en pantalla es 8

Para resolver los problemas de potencias y races, se usan ciertas instrucciones


especiales que proporciona el lenguaje, llamadas funciones matemticas, en pascal
existe todo un conjunto de instrucciones o funciones matemticas.
Y ademas deberan recordar sus leyes de logaritmos y de potencias:
Con el uso de los logaritmos, los procesos de multiplicacin, divisin, elevacin a
potencias y extraccin de races entre nmeros reales pueden simplificarse de la manera
siguiente.
1.- El logaritmo de un producto es igual a la suma de los logaritmos de los factores.
Log ( a . m) = log a + log m
2.- El logaritmo de un cociente es igual a la diferencia de los logaritmos de los trminos
Log(a:m) = log a - log m
3.-El logaritmo de una potencia es igual al exponente por el logaritmo de la base.
Log am = m * Log a
4.- El logaritmo de una raiz es igual al logaritmo del radicando dividido por el ndice de
la raz
log

= m/n log a

Las dos funciones que se usan para resolver este problema son:
Ln(x) Nos regresa el logaritmo natural del numero x.
EXP(x) nos regresa eX es decir el antilogaritmo de un numero.
Otra vez si se ocupa resolver la multiplicacion de 5 * 20, la regla de logaritmos nos dice
que el resultado es = log(5) + log(20) aunque en pascal se usa Ln(5) + Ln(20) pro en
estos casos lo que se tiene de resultado no es 100 sino el logaritmo de 100, porque

estamos sumando los logaritmos, es decir al resultado de la suma de logaritmos le


tenemos que sacar su antilogaritmo, para conocer el resultado final(100) de la
mulptiplicacion.
Ejemplo en pascal
Real alfa
Alfa := Exp( Ln(5) + Ln(20) );
Como se observa primero se calculan los logaritmos de 5 y de veinte con (Ln), luego los
sumamos y a este resultado le extraemos el antilogaritmo con (EXP) que seria el
resultado final.
Otro ejemplo si se tiene la potencia 53 entonces aplicando la regla de logaritmos el
programa quedaria:
Real alfa
Alfa = EXP(5 * Ln(3));
Y si se tiene que obtener la raiz de 9 9 en borland delphi sera:
Alfa = EXP( 1/2 * Ln(9));
TEMA 6: BORLAND DELPHI JERARQUIA DE OPERACIONES
En BORLAND DELPHI el problema de no tomar en cuenta la jerarqua de los
operadores al plantear y resolver una operacin casi siempre conduce a resultados
muchas veces equivocados como estos:
Ejemplos:

2+ 3* 4 := 20(incorrecto)
:= 14 (correcto)

b) si calif1=60 y calif2=80 y si entonces en programa se usa


promedio := calif1 + calif2/2
la pc dara como resultado promedio = 100

Recordar siempre, que antes de plantear una formula en un programa se deber evaluar
contra el siguiente:
Orden de operaciones:

1.- Parntesis
2.- Potencias y races
3.- Multiplicaciones y divisiones
4.- Sumas y restas
5.- Dos o ms de la misma jerarqua u orden, entonces resolver de izquierda a derecha

Nota: Si se quiere alterar el orden normal de operaciones, entonces usar parntesis.


Nota: Tampoco es bueno usar parntesis de mas en una operacin, esto solo indica que
no se evalo bien la formula, como en el siguiente ejemplo;

aqu los parntesis estn de mas, porque por orden de operaciones, multiplicacin y
divisin tienen la misma jerarqua y entonces se resuelven de izquierda a derecha, en
otras palabras ni que falten parntesis ni que sobren parntesis.
7.- DELPHI ENTRADAS / SALIDAS EN PROGRAMACION VISUAL

Entradas o capturas de datos y salidas o despliegues de informacin o resultados son de


los procesos ms comunes en cualquier tipo de problema de informacin, estos procesos
o instrucciones varan de acuerdo a los lenguajes y ambientes de programacin a usar.
El lenguaje y ambiente de programacin a utilizar, es de tipo visual, y muchos de los
problemas asociados a entradas y salidas se encuentran ya resueltos por el propio
compilador.
El ambiente de construccin de programas a usar, es el siguiente:
SOLO CARGARLO EN PANTALLA EJECUTANDO EL BORLAND DELPHI, QUE
SE ENCUENTRA EN LA BARRA DE START DE WINDOWS.

Sus elementos bsicos son:


1.- La barra de mens (file, edit , etc.);
2.- La barra de herramientas(icono de grabar, run, forma, etc.)
3.- La barra de componentes
4.- El Inspector de Objetos
5.- La forma activa o principal
8.- TFORM, ACTIVA O PRINCIPAL
Es sobre esta forma donde se construye el programa y esta forma se convierte en
ventana al momento de ejecutarse el programa.
Es decir ser la primera ventana que el usuario ve al momento de ejecutarse el
programa, su nombre es Form1.
Esta forma o ventana es un objeto de Borland Delphi y como todos los objetos de
Delphi y del universo, la forma o ventana tiene asociados propiedades y eventos.
Propiedades son todas las caractersticas particulares que diferencian un objeto de otro
objeto, las propiedades o caractersticas mas comunes son forma, tamao, color, etc.,
para objetos en DELPHI estas propiedades se modifican o individualizan usando el
Inspector de Objetos, que es la parte del programa que las contiene.

Tambin se pueden modificar las propiedades dentro de un programa, usando


instrucciones apropiadas, mismas que llevan el siguiente formato:

nomobjetopropiedad := nvovalor;
ej.; Form2Color := clRed;

Eventos, son todos aquellos sucesos de carcter externo que afectan o llaman la atencin
del objeto, para estos caso la forma o ventana:
1. Debe tener capacidad de detectar el evento
2. Aun mas importante debe tener capacidad de reaccionar y emitir una respuesta,
mensaje o conducta apropiada a el evento detectado.
Evento es por ejemplo que otro objeto llamado humano, pulse el objeto tecla ESC, o
haga click derecho con el objeto ratn en alguna parte de la ventana , etc. , es en estos
casos, cuando la ventana detecta un evento de estos, la propia forma deber responder
de manera apropiada.
Esta respuesta no es automtica, sino son la serie de instrucciones del lenguaje (o
programa) que los ingenieros de software disean(o programan), en otras palabras son
los eventos quienes contendrn los programas.
Es tambien el Inspector de Objetos, quien contiene todos los posibles eventos asociados
a la forma.

Para los primeros programas en Borland Delphi solo se usaran propiedades sencillas
como color, font, etc. de Form1, y no se usan, de momento los eventos que puede
detectar Form1.
9.- BORLAND DELPHI PROGRAMAS, FORMAS Y COMPONENTES

Un programa o problema de informacin en Borland Delphi no es mas que una o mas


formas o ventanas, donde cada una de ellas contiene elementos u objetos especiales
llamados componentes, dichos componentes DELPHI los proporciona a travs de la
barra de componentes.

Es decir toda la interfase que se quiera manejar con el usuario del programa, no consiste
mas que de una coleccin de componentes agrupados en una forma o ventana.
La coleccin de componentes que pone a nuestra disposicin DELPHI estn agrupados
en diversos folder o pestaas o paginas en la barra de componentes, las principales
categorias para este curso contienen los siguientes componentes:
Standard.- Frames MainMenu PopupMenu Label Edit Memo Button CheckBox
RadioButton ListBox ComboBox ScrollBar GroupBox RadioGroup Panel ActionList

Additional.- BitBtn SpeedButton MaskEdit StringGrid DrawGrid Image Shape Bevel


ScrollBox CheckListBox Splitter StaticText ControlBar AplicationsEvents Chart

Data Access.- DataSource Table Query StoredProc DataBase Session BatchMove


UpdateSQL NestedTable

Data Controls.- DBGrid DBNavigator DBText DBEdit DBMemo DBImage DBListBox


DBComboBox DBCheckBox DBRadioGroup DBLookupListBox
DBLookupComboBox DBRichEdit DBControlGrid DBChart

Win31.- DBLookupList, DBLookupCombo, TabSet, Outline, Header, TabbedNotebook,


NoteBook.

Dialogs.- OpenDialog, SaveDialog, FontDialog, ColorDialog, PrintDialog,


PrinterSetupDialog, FindDialog, ReplaceDialog.

System.- Timer, PaintBox, FileListBox, DirectoryListBox, DriveComboBox,


FilterComboBox, MediaPlayer, OleContainer, Ddeclientconv, DdclientItem,
Ddeserverconv, DdeserverItem.

QReport.- QuickReport, QRBand, QRGroup, QRDetailLink, QRLabel, QRMemo,


QRDBText, QRDBCalc, QRSysData, QRShape, QRPreview.

Para incorporar un componente a una forma solo basta seleccionarlo con un click
derecho en su icono y luego colocar el cursor dentro de la forma en el lugar donde se
quiere que aparezca y volver a hacer un click derecho.
Tambin los componentes son objetos de borland delphi y como tales tambin tienen
asociados propiedades y eventos, tales como los tiene la forma principal, solo que
existen pequeas variaciones en cuanto a sus propiedades y eventos propios con
respecto a Form1.
Recordar adems, que es el Inspector de Objetos en primera instancia quien permite
asociar o modificar propiedades especificas tanto a una forma como a un componente.

Ya en segunda instancia las propiedades de formas y componentes se pueden modificar


tambin directamente dentro de un programa, usando instrucciones como las ya
descritas en prrafos muy anteriores.
Analizaremos ahora los dos primeros componentes, que tambin se usaran para
construir o disear nuestro primer programa en Visual de BORLAND DELPHI
10.- COMPONENTE LABEL (Standard)

Este componente se utiliza para desplegar textos o mensajes estticos dentro de las
formas, textos tales como encabezados, solicitud al usuario del programa para que
proporcione algn dato o informacin(edad, dame sueldo, etc.), en cierta forma hace las
funciones de printf, cout, writeln, print, display, etc., pero solo cuando se consideran en
su parte de mensajes.
Tambin es un objeto en Borland Delphi y por tanto tiene asociados sus propias
propiedades y eventos, al mismo tiempo como se est usando dentro del objeto form1,
muchas propiedades que se definan para el objeto Form1, el objeto Label1 las va a
heredar.
Si bien es cierto que el objeto se llama Label, pero cuando se ponen dentro de una forma
Borland Delphi los va numerando automticamente, si se ponen tres Labels en Form1,
ellos se llaman o simbolizan o se procesan o programan con Label1, Label2, Label3.
Es la propiedad Caption, la que lleva el contenido del mensaje que se quiere desplegar
en la pantalla, solo click derecho a un lado de la propiedad Caption en el Inspector de
Objetos, teniendo seleccionada la caja Label1 en la forma y escribir el texto indicado.
11.- COMPONENTE BUTTON(Standard)

Es el componente principal de la forma, contiene el cdigo principal del programa y su


activacin por el usuario provoca que se realicen los principales procesos del problema
planteado (aqu es donde se capturan datos, se realizan operaciones, etc.).
De este componente se maneja su propiedad Caption para etiquetarlo con la palabra
OK o ACEPTAR o EXE y su evento OnClick para activarlo, es en dicho evento
donde se construye el cdigo del programa.
Recordar que aunque no es un componente necesario en los programas, ya que el cdigo
se puede asociar o pegar a cualquier evento de cualquier forma, o componente del
programa, Microsoft ya acostumbro a todos los usuarios al botn OK, de acuerdo, OK.

Este botn tambin puede activar su evento OnClick, cuando el usuario presione la tecla
<ENTER>, solo poner la propiedad Default en true, en este caso el botn de ordenes, se
le conoce como botn de default.
Igualmente puede activar su evento OnClick cuando el usuario, presione la tecla
<ESC>, solo poner la propiedad Cancel en true, a este caso se le conoce como
CANCEL BUTTON.
PRACTICA
Construir un primer programa que consiste en un forma que contenga los cinco datos
mas importantes de un automvil, y uno de esos datos solo deber aparecer cuando el
usuario haga click en el botn de ejecucin o de orden o de OK.
Para este programa se ocupa, una forma, dos componentes labels para encabezados
apropiados al problema, 10 componentes labels para textos y datos, un componente
Button.
Para el ultimo componente Label su propiedad Caption se dejara en blanco o vaca para
que sea el usuario del programa quien lo cargue al apretar el botn de ordenes o botn
de OK.
Recordar que Borland Delphi va numerando automticamente todos los componentes en
el programa en forma consecutiva, es decir al finalizar el diseo del programa se
tendrn, los componentes form1, label1,label2,label3,..button1.
El procedimiento completo para crear y ejecutar el programa es:
1.- Cargar Delphi
2.- Al cargarlo ya estar en la pantalla la primera forma (Form1).
3.- Antes de poner el primer componente usar la opcin, File Save Project As, aparece la
siguiente ventana:

Donde se deber seleccionar primero, el icono de nuevo folder( arriba a la derecha y


tiene un folder con rayitos), esto es, para crear un nuevo folder o directorio donde
quedara guardado o almacenado el programa, en cuanto se crea el nuevo folder,
sobrescribir la palabra new folder que aparece, con el nombre que tendr el directorio

donde quedara almacenado el programa, escribir por ejemplo programa uno


( Windows95 ya permite que los nombres de directorios y sus archivos ya sean mas
largos y no necesariamente del tipo antiguo de 8.3), al terminar de sobrescribir, la
palabra programa uno apretar tecla <ENTER> y esperar un momento a que se cree el
directorio.
Ya creado y renombrado el directorio, observar que en la parte inferior de la ventana el
programa ya tiene el nombre de Unit1.pas, a un lado esta una caja o botn de
OPEN, mismo que se deber apretar y despus usar en la misma parte un botn
llamado SAVE para almacenar Unit1.dpr.
4.- Ahora ya que se tiene Form1 en pantalla, recordar que se pueden modificar sus
propiedades como color, font, etc. usando el Inspector de Objetos que esta a un lado de
la forma ( se sugiere practicar un poco esto), los cambios que se hacen en el Inspector
de Objetos se van reflejando automticamente en la forma en pantalla y tambin en la
ventana que el usuario vera al ejecutarse el programa.
5.- Ahora se selecciona con un click el componente llamado Label en la barra de
componentes y luego poner el cursor dentro de la forma en el lugar donde se quiera que
aparezca el componente, y volver a hacer click con el ratn para que ya aparezca dicho
componente en la forma.
Observar que el componente en la forma, que est seleccionado ( esto se puede hacer,
usando un click dentro de el componente) se puede arrastrar para cambiarlo de lugar o
posicin o hacerlo mas pequeo o mas grande.
Como nota tambin a recordar siempre, un componente o la propia forma, est
seleccionado, si el Inspector de Objetos lo esta referenciando, es decir es el Inspector de
Objetos quien contiene el nombre del componente en la parte de arriba del propio
Inspector de Objetos.
Para cargar o para que despliegue un texto el componente Label1, solo escribir dicho
texto en la cajita que esta a un lado de la propiedad Captin en el Inspector de Objetos,
por ejemplo para el problema, escribir la palabra AUTOS ECONOMICOS, y recordar
que tambin est componente tambin tiene propiedad font que se puede usar para
alterar el tipo de letra que despliega el componente.
6.-Repetir el procedimiento anterior hasta tener los doce componentes Label bien
acomodados y organizados en la forma y con sus textos correspondientes, solo recordar
dejar el componente Label12 con su propiedad Caption en blanco(usando tecla
backspace).
7.- Seleccionar y acomodar ahora un componente Button en la forma y colocarlo en la
esquina inferior derecha, en su propiedad Caption = escribir la palabra OK.
Recordar que este componente, es quien contiene el cdigo del programa y mas
especficamente es su evento OnClick quien lo contiene y quien adems lo activa o lo
ejecuta.

Para aadirle el cdigo(en este ejemplo que cargue el Caption de Label12 al tiempo de
ejecucin del programa y por decisin del propio usuario) existen dos maneras:
En el Inspector de Objetos, hacer click en la pestaa o folder llamado event y ahora en
lugar de propiedades el Inspector de Objetos, muestra todos los eventos que el
componente puede detectar(observar y anotarlos), ahora click en la cajita que esta a un
lado del evento llamado OnClick y con este paso aparece el siguiente minieditor de
programas de Borland Delphi:

Observar que ya trae listo el evento Button1Onclick() para programarse y es dentro del
BEGIN-END donde se construye el programa.
Solo escribir dentro de las llaves la instruccin Label8.Caption := FORD;

Escribirla dentro del BEGIN END como lo muestra el ejemplo

No olvidar terminar con ( ; )

Respetar y aprender siempre la ortografa de componentes, propiedades y


valores de propiedades

Recordar que cualquier propiedad de cualquier componente se puede programar


con el formato ya descrito;

NomComponente.NomPropiedad := NvoValor;

Observar que Caption se carga como si fuese una variable de tipo string,
dentro de un programa, es decir entre apostrofes ( ' ).

Observar que atrs del editor esta Form1, si se selecciona con un click, este
procedimiento lo regresa a la forma para seguir arreglando o colocando nuevos
elementos.

Otra manera de estarse intercambiando entre forma y editor ( ahora lo


llamaremos Unit1.cpp), es decir entre form1 y Unit1, es usar el icono Toggle

Form/Unit
izquierda.

que se encuentra en la barra de componentes arriba y a la

La otra manera y mas sencilla de cargar el editor, es haciendo un dobleclick dentro del
componente.
8.- Ahora ya esta lista la forma o programa para ejecutarse, tambin existen dos
maneras:
1. Usar la opcin Run que esta arriba en la barra de mens.
2. Usar icono run

en barra de herramientas.

Nota.- Tambin se puede usar tambin la primera letra dentro del botn de comando o
de ordenes (OK) para activar las instrucciones o acciones del botn, es decir se puede
usar click en botn o solo pulsar la letra O, para que se ejecute este ultimo
procedimiento , solo poner un smbolo & en el caption del botn antes de la letra O.
El programa ya en ejecucin debe ser similar(pero mejor diseado) al siguiente ejemplo:

Ya que se practic, la mecnica de creacin de programas, resolveremos el problema de


interactividad con el usuario.
Es decir en estos casos es el usuario quien generalmente proporciona los datos para su
procesamiento en el problema el trabajo del ingeniero de software, es procesarlos y
darles sentido, coherencia y sobre todo eficiencia.
Para esto se ocupan componentes llamados de input, entrada o captura, que
permitan al usuario cargar o proporcionar un dato en ellos, dichos componentes son:
12.- COMPONENTE EDIT (Standard)

Este componente es el mas importante componente visual de Borland Delphi, su


funcin principal es manejar todos los procesos de entrada y salida (input/output) al
programa.
En resumen de este componente, se necesita entender lo siguiente:
Este componente Edit, es el equivalente a las variables en cualquier lenguaje de
programacin, mas la instruccin de captura o despliegue correspondiente, es
decir;
a) En BASIC, Input Edad Edit1
b) En PASCAL, Read(Ciudad) Edit2
c) En C, printf(%d, sueldo) Edit3
d) En C++, cin.get(nombre,30) Edit4
e) En Cobol Display metros Edit5
Ya aclarada su funcin, es necesario entender primero, que este componente permite
capturar datos y tambin como en el caso del componente Label desplegar datos, textos,
mensajes o resultados de operaciones de ser necesario, usando la propiedad Text del
componente Edit.
Esta propiedad Text, as como la propiedad Caption en Label, permiten igualarse a
muchos procesos bsicos, es decir es fcil igualar Text o Caption a un dato, una
variable, otro Text u Caption, o una expresin algebraica normal, como en los
siguientes ejemplos;

Edit2.Text := 5;
Label3.Caption := 'PATO';
Edit4.Text := 3 * 6.2 ;

En principio su valor de default es la palabra Edit1 y es en su propiedad Text donde se


modifica, generalmente al principio de un programa se deja en blanco, y al ejecutarse el
programa, el usuario lo llena con los datos solicitados o el programa lo llena con el
resultado de las operaciones.
Es importante entender que la propiedad TEXT de este control o componente se cargara
o se leera como una STRING, es decir para procesarlo se usa codigo similar a :
Edit10.Text := '3,1416';

String temporal := Edit10.Text;


Observar que aunque se cargue con un dato aparentemente de tipo REAL la propiedad
TEXT solo puede contener STRINGS.
Se usaran mucho a lo largo de todo el curso las siguientes funciones de BROLAND
DELPHI para estar conviertiendo de STRINNS a VALORES NUMERICOS y
tambien de VALORES NUMERICOS a STRINGS.
a) Val(Edit1.Text,temporal,error) ESTA FUNCION TOMA LA STRING QUE ESTA
EN TEXT Y LA MANDA O CARGA LA VARIABLE NUMERICA (INTEGER O
REAL ) TEMPORAL, APARTE VAL CARGA UNA VARIABLE INTEGER ERROR
CON UN CODIGO DE ERROR SI SE DIO ALGUN ERROR EN EL PROCESO DE
CONVERSION, ES DECIR VAL SE USA PARA CONVERTIR TEXT A VARIABLES
NUMERICAS.
B) STR( 3.1416,temporal ) SE USA PARA CARGAR UNA VARIABLE STRING
TEMPORAL CON UN DATO O VALOR NUMERICO DETERMINADO,
RECORDAR QUE SE USA PARA CONVERTIR DATOS NUMERICOS A STRINGS,
NO TEXT
C) Edit1.Text:=FloatToStr(123.45) SE USA PARA CARGAR LA PROPIEDAD
TEXT DE UN EDIT CON UN DATO O VARIABLE ENTERA O REAL.
D) FloatToDecimal (PROCEDIMIENTO) CONVIERTE U FLOTANTE A
DECIMAL
E) FloatToStr (FUNCION) EJEMPLO CASO C) CONVIERTE FLOTANTE A
STRING
F) FloatToStrF (FUNCION) SIMILAR A C) PERO SE PUEDE AGREGAR UN
FORMATO, PARTE ENTERA Y DECIMALES (VER EJEMPLOS EN
PROGRAMAS )
G) FloatToText(FUNCION) CONVIERTE FLOTANTES A TEXT, INCLUYENDO
FORMATO, PARTE ENTERA Y DECIMALES.
H) FloatToTextFmt(FUNCION) CONVIERTE FLOTANTE A TEXT USANDO UN
FORMATO DETERMINADO.
I) FormatFloat(FUNCION) FORMATEA UN FLOTANTE:
EJEMPLO:
EDIT1.TEXT := '23.456789';
Format('%0:2f',[Edit1.Text]) EL DESPLIEGUE SERA 23.45
ALGUNAS CONSTANTES DE FORMATEO SON:

%5:5d > despliega cinco digitos enteros y cinco decimales, si el dato tiene menos
partes enteras se rellenara con ceros 0000.
%u > similar a %d excepto que no muestra el signo (+/-) del dato.
%e > despliega en notacion cientifica o exponencial.
%f > fijo dos decimales por default.
%g > el compilador decide si lo manda a decimal o exponencial.
%n > similar a %f solo que los miles se separan con comas.
%m > formato monetario.
%x > lo convierte a hexadecimal.
J) StrToCurr(FUNCION) > CONVIERTE UNA STRING A FORMATO
MONETARIO.
H) StrToFloat (FUNCION) > CONVIERTE STRING A FLOTANTE.
I) TextToFloat(FUNCION) CONVIERTE TEXT A FLOTANTE.
ing-point value from a null-terminated string.
Cuando un usuario lo carga con un dato recordar que el dato almacenado queda de tipo
texto, no importa lo que haya escrito el usuario.
Para resolver el problema de usar datos numricos dentro del Text de un componente
Edit, en operaciones matemticas, solo USAR LAS FUNCIONES APROPIADAS,
como se muestra en el siguiente ejemplo.

temp := StrToFloat(Edit1.Text)* 5;
Edit1.Text := FloatToStrF(temp,ffGeneral,5,2); NOTA: ffCurrency, ffExponent, ffFixed,
ffGeneral, ffNumber

Recordar que el usuario, usara un componente Edit para almacenar los datos de entrada
del problema, muchas veces estos datos son de tipo numrico, por ejemplo en un
componente Edit se almacena la cantidad de pesos, el precio de un articulo, la edad de
una persona, etc.
Solo recordar siempre usar el componente Edit, directamente como una variable
cualquiera(con su mtodo o funcin correspondiente ) y construir la operacin o
formula con los propios componente o cajas edit.

Es decir, por ejemplo, si se pide resolver el problema de multiplicar dos nmeros


cualesquiera, se ocuparan tres ` cajas Edit,(factor1, factor2, producto), es en estos casos
donde se usan tres componentes Edit como si fuesen tres variables simples
directamente.
Ya en programa se ocupan 3 componentes Label para ttulos (Multiplicando,
Multiplicador, Multiplicacin), tres componentes Edit para los datos (dos
proporcionados por el usuario y uno calculado por el programa) y un componente
Button(OK) para realizar la operacin.
Codigo;
procedure TForm1.Button1Click(Sender: TObject);
var
temp:Real;
begin
temp := StrToFloat(Edit1.Text)* StrToFloat(Edit2.Text);
Edit3.Text:=Format('%0.2f',[temp]);
end;

corrida:

notas:
Como se observa este componente Edit permite capturar datos por parte del usuario del
programa.
Es mas sencillo considerar, estos componentes como variables normales y usarlos
directamente.
Solo en problemas algebraicos usar propiedad Text con las funciones apropiadas.

Respetar la ortografa en el ejemplo, sobre todo en las instrucciones (las que terminan
con ;)
Si son muchas operaciones en un problema, el procedimiento es similar, solo resolverlo
por partes ya que una formula que contenga cuatro o cinco Edit, se convierte en un
rengln de cdigo gigante.
sin embargo es mas sencillo usar el mtodo que se usa en el programa dado de ejemplo
para la multiplicacin, es decir considerar los componentes Edit como variables
normales, y usar:
Edit3.Text:=Format('%0.2f',[temp]);
Edit8Text.ToDouble();
Para el caso de resultados decimales , la salida incluye todo el conjunto de decimales
asociados a un tipo double(muchos ceros), para resolver este problema se pueden usar
directamente algunos mtodos asociados a la clase AnsiString , por ejemplo uno de esos
mtodos es;
Format('string de formato', var real);
La string de formato contiene una serie de simbolos literales que se utilizan para darle el
formato de salida deseado, esto simbolos o constantes literales son;
Const. Lit. Significado

0(cero) Rellena con 0(ceros) todas las posiciones indicadas, ejemplo 0000.00 para el
numer 23.4 la string de salida seria 0023.40
# Constante muy usada para formato de valores numricos, esta constante solo
despliega el valor numrico normal.
. Se utiliza para separar la parte entera de la parte decimal.
,(coma) Se utiliza para separar el valor numrico en unidades de millar.
E+, E-, e+, e- Se utilizan para convertir a notacin cientfica exponencial el valor de
salida.

En resumen, este componente Edit, es el componente mas importante y elemental en


todo problema que involucre el procesamiento de datos en ambientes visuales, se debe
acostumbrar a considerarse como un elemento importante en cualquier problema visual,
y acostumbrarse a procesarlo como si fuese una variable normal cualesquiera.

EL RESUMEN DE CONVERSION DE DATOS A COMPONENENTE Y QUE SE


USA A LO LARGO DE ESTE CURSO EN GENERAL DESCANSA EN LAS
SIGUIENTES 4 FUNCIONES.
1.- IntToStr( dato o variable integer);
2.- StrToInt( variable string o propiedad text de un componente visual);
3.- FloatToStr( dato o variable real);
4.- StrToFloat(variable string o propiedad text de un componente visual);
ESTAS CUATRO FUNCIONES REPITO SERAN LAS MAS UTILIZADAS A LO
LARGO DEL CURSO, PERO DE TODOS MODOS ESTUDIAR Y RECORDAR
TODAS LAS ANTERIORES)
PROGRAMA EJEMPLO
Se construye y resuelve el segundo programa del modelo de solucin del rea del
tringulo.
Para crear y disear la forma y sus componentes se ocupa, una forma, seis labels, tres
edits y un Button, quedando as;
a)Pantalla de diseo

b)Programa
El cdigo o miniprograma ( es miniprograma porque no se tiene que programar mucho
de la pantalla), solo disearla, y dentro del evento Click del componente Button1, queda
as;
procedure TForm1.Button1Click(Sender: TObject);
var

temp:Real;
begin
temp := StrToFloat(Edit1.Text)* StrToFloat(Edit2.Text)/ 2;
Edit3.Text:=Format('%0.2f',[temp]);
end;

c) Pantalla de ejecucin o de salida

Recordar que cuando se capturen los datos de base y altura, no dejar espacios en blanco
antes del primer numero o se darn problemas y errores de conversin a valores
numricos.
Para resolver mejor este problema de formatos mas adecuados para captura de datos, se
usaran nuevos componentes que se analizan mas adelante.
TAREAS PROGRAMACION BORLAND DELPHI
1.- CONVERTIR A PROGRAMAS 7 DE LOS PROBLEMAS VISTOS EN EL
MODELO DE SOLUCION.
13.- COMPONENTE MaskEdit (Adicional)

Este componente es muy similar en su uso al componente Edit, excepto que proporciona
una mascara especializada para el formato de datos, es decir se puede usar para que el
usuario proporcione datos con formatos bien definidos, como son valores numricos
que incluyan puntos y comas por ejemplo 3,345.87, o que incluyan smbolos como el de
$, o para el caso de fechas que lleven su propio separador como por ejemplo 02/28/97.

Tambin se puede usar, para asegurarse que el dato proporcionado por el usuario, solo
incluya nmeros, o solo contenga letras, etc.
Para darle formato al dato que el usuario debe proporcionar solo hacer dobleclick a un
lado de la propiedad EditMask en el Inspector de Objetos y esto nos da el siguiente
minieditor de datos:

Observar en la ventana derecha, algunos ejemplos de mascaras de edicin.

Es en la ventanilla arriba a la izquierda donde se colocan los caracteres


especiales de edicin ( en el ejemplo se estn usando, $, #, puntos y comas).

Es en la ventanilla abajo a la izquierda donde se pueden proporcionar algunos


datos de prueba, para probar el formato diseado.

Recordar que este formato es para capturas, no para despliegues, puesto que para
este caso (despliegue) se usa FormatFloat().

No olvide usar el botn OK, cuando se termine de construir la mascara de


edicin.

Los principales caracteres especiales de edicin son:

carcter significado

! Caracteres opcionales se despliegan en blanco


Caracteres que siguen deben ser maysculas
< Caracteres que siguen deben ser minsculas
L Requiere una letra en esta posicin
l Permite una letra es esta posicin pero no la requiere
A Requiere un alfanumrico en esta posicin

a Permite un alfanumrico pero no lo requiere


0 Requiere un numero en esta posicin
9 Permite un numero pero no lo requiere
# Permite un numero y tambin signos mas y menos
: Separa horas:minutos:segundos
/ Separa meses/das/aos
; Se utiliza para separar los tres campos o partes de una mascara
_ inserta espacios en blanco en el texto

Cualquier otro carcter que no aparezca en la tabla anterior, puede aparecer en una
mascara, pero solo se tomara en cuenta como una literal cualesquiera, es decir son
insertados automticamente y el cursor los brinca.
El segundo campo o parte de una mascara es un carcter simple que indica que carcter
literal debe ser incluido como parte del texto del componente MaskEdit, por ejemplo
(000)_000-0000;0;*,
Un 0 en el segundo campo indica que solo deben capturarse los diez dgitos marcados
con O, en lugar de los 14 que tiene la mascara.
El tercer campo de la mascara, es el carcter que se quiera que aparezca en lugar de
espacios en blancos.
Nota: para procesarlo usar solo Text DE MANERA NORMAL COMO SE
RELIZO EN EL TEMA ANTERIOR DE EDIT.
TAREAS PROGRAMACION BORLAND DELPHI
1.- OTROS 7 DE LOS PROBLEMAS QUE VIENEN EL EL TEMA DE MODELO DE
SOLUCION.
14.- COMPONENTE ComboBox (Standard) BORLAND DELPHI

Existen muchas ocasiones en donde el usuario del programa tiene que proporcionar
datos que provienen de un conjunto finito y muy pequeo de posibles respuestas, esto
significa que cada vez que se ejecute el programa, el usuario estar proporcionando las
mismas respuestas.

Ejemplo de esta clase de datos, son por ejemplos Municipio en BC, las posibles
respuestas solo son (Tecate, Tijuana, Mexicali, Ensenada, Rosarito), otro ejemplo es
Sexo (Hombre, Mujer), etc.
Para situaciones como esta, existen componentes que permiten programar por
adelantado las posibles respuestas, y el usuario solo debe seleccionar la respuesta
apropiada , en lugar de tener que escribirla.
Este componente ComboBox nos permite definir en primera instancia un conjunto de
datos o valores respuestas asociados a una caja de edicin cualesquiera, as ahora el
usuario tendr la oportunidad de seleccionar un dato del conjunto de datos o respuestas
ya predefinido.
Este componente ComboBox tiene dos partes, una parte de encabezado, para poner el
nombre del grupo de respuestas( por ejemplo municipios, sexo, etc.), que se carga
usando la propiedad Text del componente.
La segunda parte es la lista de opciones o respuestas que se debe cargar al tiempo de
diseo de la ventana, en el momento de poner el componente ComboBox1, solo hacer
dobleclick a un lado de la propiedad Items en el Inspector de objetos y sale el siguiente
editor de strings:

Al momento de ejecucin del programa, toda la lista de respuestas, estarn a la vista del
usuario, para que este ultimo la seleccione.
Recordar que el usuario al momento de ejecucin del programa, solo vera el
encabezado, para seleccionar su respuesta deber apretar la flechita que esta a un lado
del encabezado.
Para procesar este componente:
Usar su popiedad Text de manera normal, es decir si la respuesta se ocupa en string,
Solo usar ComboBox1.Text, o si la respuesta se quiere numerica solo convertir Text a
flotante de manera normal ( ver el ejemplo del tema EDIT ).
TAREAS PROGRAMACION BORLAND DELPHI

1.- REEDITAR LOS PROBLEMAS YA RESUELTOS, AGREGANDO ESTE


COMPONENTE EN LOS CASOS DE CAPTURAS QUE LO PUEDEN ADMITIR
( CAPTURAS DONDE YA SE TIENEN LAS ENTRADAS SELECCIONADAS O
CONOCIDAS DE ANTEMANO).
15.- BORLAND DELPHI COMPONENTES DE AGRUPAMIENTO

Como ya se empieza a notar en los programas construidos, la cantidad de datos e


informacin empiezan a amontonarse en la ventana simple que se ha venido
construyendo.
Para resolver este problema, se tienen dos mtodos, el primero de ellos consiste de una
serie de componentes que permiten agrupar datos o informacin(resultados) de una
manera mas lgica y esttica.
El segundo mtodo consiste de construir y trabajar con dos o mas ventanas a la vez.
Se empieza por el primero mtodo , es decir componentes de agrupamiento.
16.- BORLAND DELPHI COMPONENTE PANEL ( Standard y atrs flecha negra)

Es el componente mas sencillo y comn de agrupamiento, se utiliza para poner un panel


o un cuadro o marco dentro de una ventana.
El componente Panel1 puede contener una toda una serie lgica de otros componentes.
Solo se deber recordar colocar primero todos los paneles en la forma y encima de ellos
los componentes que contendrn.
Este componente tambin tiene una serie de propiedades que le dan una mejor
presentacin usando las propiedades BevelInner, BevelOuter, BevelWidth, y
BorderWidth.
Es decir se puede dividir una sola ventana en varias partes, por ejemplo en un panel se
ponen los componentes donde se capturan los datos de un problema junto con el botn
de OK, y en otro panel se construye la salida, por ejemplo se crea un panel para capturar
los datos de un empleado incluyendo sueldo diario y das trabajados y un segundo panel
contiene su cheque semanal de pago ( problema sugerido tambin ).
Para modificar programas construidos sin paneles, el procedimiento para agregarlos es:
1.- Mover todos los componentes abajo en la ventana.

2.- Colocar el panel en su posicion.


3.- Click en Componente a relocalizar.
4.- DobleClick, Copy
5.- DobleClick, Cut
6.- Click dentro del panel, donde se quiere el componente
7.- DobleClick, Paste
TAREAS PROGRAMACION BORLAND DELPHI
1.- REEDITAR E INCLUIR ESTE COMPONENTE PANEL, EN TODOS LOS
PROGRAMAS IMPARES HECHOS.
17.- BORLAND DELPHI COMPONENTE GROUPBOX (Standard)

Este componente es otra forma standard de agrupamiento de componentes de programas


en Windows, se usa para agrupar componentes relacionados dentro de una forma.
Tambin se utiliza para separar reas lgicas dentro de una ventana de Windows.
El texto que identifica el propsito general del grupo se escribe dentro de la propiedad
Caption en el Inspector de Objetos, teniendo seleccionado este componente GroupBox.
Adems de sus propiedades, mtodos y eventos propios, como todos los componentes
de este tipo, tiene o hereda las propiedades, mtodos y eventos de todos los controles
generales de tipo Windows.
Es muy similar al componente panel, excepto que incluye una pestaa que permite dejar
mas claro, el proposito del grupo.
TAREAS PROGRAMACION BORLAND DELPHI
1.- REEDITAR E INCLUIR ESTE COMPONENTE GroupBox PARA TODOS LOS
PROBLEMAS PARES YA CONSTRUIDOS
18.- VENTANAS EN DELPHI

El siguiente problema comn, con el manejo de programas en borland delphi, es el de


poder crear, controlar y administrar mas de dos formas o ventanas a la vez.

Lo primero que hay que entender para poder resolver este problema es que en borland
delphi , cada forma o ventana tiene asociado ciertos recursos, ademas de los
componentes que contiene, tambien una serie de recursos especiales, en general, la
forma, los recursos y los objetos hijos o componentes, se encuentran relacionados todos
ellos, en un archivo especial, llamado Unit1.pas.
Es decir si se crea una segunda forma o ventana,, dicha form2, junto con sus recursos,
componentes, etc., se encontrara contenida en el archivo llamado Unit2.pas y as
sucesivamente.
Pero recordar y tambin tomar en cuenta, que los componentes de esta segunda
forma, tambin se simbolizaran y procesaran normalmente, es decir ellos tambin
sern (Edit1, Label5, etc.).
Para crear una segunda forma (form2), solo usar el icono de new Form
que se
encuentra en la barra de herramientas, recordar adems que los otros iconos de dicha
barra sirven para estarse intercambiando entre formas y Unit(cdigo fuente).
La segunda forma se construye normalmente, pero queda el problema de donde queda el
botn de ordenes, le respuesta es, se pone en la primera forma o ventana principal del
programa.
El proceso en este botn es similar a todos los programas anteriores, es decir primero se
capturan los datos ( pantalla o ventana de captura)luego se resuelve las operaciones y
luego traspasar los datos a los componentes de la segunda forma o ventana.
Para poder realizar este procesos, solo usar ahora un nuevo formato de trabajo con
todos los componentes usados, para que ahora incluyan la forma que lo contiene,
es decir se usa ahora ;
NOMFORMA.NOMCOMPONENTE.NOMPROPIEDAD
Ejemplos;
a) Form5.Edit3.Text := Form1.Edit2.Text;
// se esta pasando el texto de edit2 de primera
// ventana al texto de edit3 de la quinta ventana
b) REAL alfa := StrToFloat(Form2.Edit4.Text);
// se esta poniendo en una variable real el contenido
// de la caja cuatro de la tercera ventana

como se observa, procesar los elementos de dos ventanas, es sencillo pero adems
existen ciertas condiciones que debern cuidarse para que estos procesos
funcionen, estas condiciones son:

Crear, armar y disear todas las ventanas primero, junto con sus componentes y
miniprogramas.
Cualquier ventana que mencione o contenga una referencia dentro de su cdigo a otra
ventana, deber incluir en su Unit respectiva, la unidad (Unit) de la otra forma o
ventana, esto es muy similar a lo que se hace en PASCAL para el manejo de unidades.
Para incluir la unidad(Unit) de la otra forma o ventana, solo tener seleccionada o al
frente la ventana que llama, y usar la orden File, USE Unit, que se encuentra en arriba
en la barra de men, junto con el Run, Compile, etc., al dar esta orden(File USE Unit)
sale una lista con todas las unidades(Unit) que ya se disearon, seleccionar la apropiada
y ya se incluir automticamente en la forma o ventana actual.
Si una ventana o forma referencia dos o mas formas diferentes, entonces usar la orden
File, USE Unit, tantas veces como sea necesario.
Este procedimiento permite construir programas con dos o mas ventanas, pero el
problema es que todas ellas estarn a la vista del usuario, para resolver este problema, el
procedimiento mas sencillo es poner en False la propiedad visible de la forma o ventana
que se quiera tener oculta y poner cualquiera de las siguientes instrucciones en el cdigo
del programa para que aparezcan o desaparezcan a voluntad;
- Form2.Visible := true;
- Form2.Show(); // similar a la anterior(pero mas corta)
3) Form2.ShowModal(); // no permite accesar la primera ventana, hasta
que se cierra(X) la segunda ventana.

Programacin Avanzada permite crear y destruir ventanas y componentes al tiempo de


ejecucin del programa, pero estos conocimientos, no forman parte del mbito de este
libro.
Si se tienen formas de mas, o formas que ya no se quieren usar o de plano mal
construidas se pueden remover del proyecto usando PROJECT REMOVE FROM
PROJECT del menu normal y de la ventanilla que aparece seleccionar la unidad que
contiene la forma que se quiere eliminar.
TAREAS PROGRAMACION BORLAND DELPHI
1.- REEDITAR TRES CUALESQUIERA DE LOS PROBLEMA YA RESUELTOS
PARA QUE INCLUYAN CUANDO MENOS DOS VENTANAS
2.- CONSTRUIR UN PROGRAMA DONDE LA PRIMERA VENTANA CAPTURE
LOS DATOS DE UN ALUMNO INCLUYENDO LAS CALIFICACIONES DE 3
MATERIAS DIFERENTES Y UNA SEGUNDA VENTANA DESPLIEGA UN
REPORTE DE CALIFICACIONES DEL ALUMNO INCLUYENDO PROMEDIO
FINAL.

19.- COMPONENTE BITBUTTON (ADITTIONAL)

Este componente visual permite realizar en forma fcil toda una serie de tareas comunes
en Windows.
En principio es parecido al componente Button, pero en el ejemplo de arriba observar
que incluye un grfico o bitmap, que lo hace mas agradable y visible al usuario.
Es en su propiedad KIND, en el inspector de objetos, donde se pueden definir
cualquiera de sus diez opciones, como lo muestra la siguiente pantalla.

Todos son BITBUTTON, nada mas con Kind Seleccionado.


Close, en una ventana, cuando el usuario lo selecciona, cierra la ventana.

UNIDAD II INSTRUCCIONES DE CONTROL DE PROGRAMA


1.- INTRODUCCION PROGRAMACION

Instrucciones de control de programa permiten alterar la secuencia normal de ejecucin


de un programa.
Estas instrucciones se dividen en tres grandes categoras:
Instrucciones Condicionales que en BORLAND DELPHI se implementan con las
instrucciones if y case.
Instrucciones de ciclos con, for, while. Repeat until.

Instruccin de salto incondicional goto.


Muchas de ellas con sus correspondientes componentes visuales.
2.- INSTRUCCIONES CONDICIONALES

Una de las mas poderosas caractersticas de cualquier computador es la capacidad que


tiene de tomar decisiones.
Es decir al comparar dos alternativas diferentes el computador puede tomar una
decisin, basndose en la evaluacin que hace de alguna condicin.
ejemplo de instrucciones condicionales ;

a)
si sueldo > 3000
desplegar rico
si no
desplegar pobre
fin-si
b)
si sexo = 'm'
imprime mujer
si no
imprime hombre
fin-si

De los ejemplos observar que los caminos por el computador dependern de la


evaluacin que el computador hace con y de la condicin.
Todo lenguaje de programacion debe tener instrucciones que permitan formar
condiciones e instrucciones que pueden evaluar esas condiciones.

Para propsito de construccin visual de programas, este tipo de instrucciones


condicionales se usaran en forma interna es decir son parte del cdigo del programa que
se empotra dentro de los eventos de componentes, no son formas o componentes en si.
Pero recordar que lenguajes visuales de igual forma tienen componentes que permiten
del mismo modo al usuario tomar decisiones, incluso directamente en pantalla, es decir
existen los llamados componentes de seleccin y decisin.
El formato general de una instruccin condicional es:

Como se observa son cuatro partes bien diferenciadas entre si;

La propia instruccin condicional en si

La condicin

El grupo cierto de instrucciones

El grupo falso de instrucciones

Cuando el computador evala una condicin,, el resultado de esa evaluacin solo es


evaluado de dos maneras o la condicin es CIERTA o la condicin es FALSA.
Esto depender del valor que tenga asignado o que se haya capturado para la variable
que esta en la condicin, por ejemplo si se capturo 6000 en sueldo en el ejemplo a),
entonces el computador indicara que la condicin es CIERTA, pero en otro caso, si a la
variable sueldo primero se le asigno un valor de 250 entonces el computador indicara
que la condicin, es FALSA.
Ya dependiendo del resultado de la evaluacin, el computador ejecuta las instrucciones
contenidas en la parte CIERTA o en la parte FALSA de la condicin.
Empezamos borland delphi con el anlisis de la CONDICION.
3.- DELPHI CONDICIONES SIMPLES

En general todas las condiciones simples se forman con;


variables operadores relacinales constante o var.
sexo = m
sueldo > 300,000
Una condicin simple se define como el conjunto de variables y/o constantes unidas por
los llamados operadores relacinales.
Los operadores relacinales que reconoce el lenguaje borland delphi son:
Operador
=
>
<
>=

<>
IN

Significado
Igual que
Mayor que
Menor que
Mayor o igual que
Menor o igual que
No es igual o es diferente que
Pertenece A

NOTA IMPORTANTE, Para el caso de objetos de tipo string, los operadores


mencionados arriba funcionan, es decir es valido usar la siguiente condicin:
string carrera;
if (carrera='informatica') etc, etc, etc,
4.- DELPHI INSTRUCCION IF
Es la instruccin condicional mas usada en los diversos lenguajes de programacin, su
formato completo y de trabajo en borland delphi es :

cargar o asignar la variable de condicin;


if condicin Then
begin
grupo cierto de instrucciones;
end
else
begin

grupo falso de instrucciones;


end;

Primus.- Observar donde van y donde no van los puntos y comas;


Secundus.- Si un if no ocupa un grupo falso de instrucciones, entonces no se pone el
else, y la llave antes del else si terminara con punto y coma.
Programa Ejemplo:
Codigo:
procedure TForm1.Button1Click(Sender: TObject);
var
temp,error:integer;
begin
Val(Edit1.Text,temp,error);
if temp >= 1000 then
begin
Label2.Caption := 'RICO';
end
Else
begin
Label2.Caption := 'POBRE';
end
end;

Corrida:

TAREAS PROGRAMACION BORLAND DELPHI


1.- Capturar un numero cualesquiera e informar si es o no es mayor de 100
2.- Capturar un numero entero cualesquiera e informar si es o no es mltiplo de 4
( recordar el operador mod(%), analizado en el tema de operadores aritmticos).
3.- Capturar los cinco datos mas importantes de un Empleado, incluyendo el sueldo
diario y los das trabajados esto en un panel, desplegarle su cheque semanal en un
segundo panel solo si gan mas de $500.00 en la semana, en caso contrario desplegarle
un bono de despensa semanal de $150.00 en un tercer panel.
4.- Capturar los datos mas importantes de un estudiante incluyendo tres calificaciones,
todo esto en una ventana, una segunda ventana que contiene una boleta de calificaciones
es llamada si el estudiante es de la carrera de medicina, en caso contrario una tercera
ventana despliega un oficio citando a los padres del estudiante a una platica amistosa
con los maestros dela escuela.
5.- Capturar los datos mas importantes de un producto cualesquiera, incluyendo
cantidad, precio, etc., desplegar una orden de compra, solo si el producto es de origen
nacional, en caso contrario no hacer nada.

operadores lgicos que BORLAND DELPHI reconoce son;


OPERADOR
AND
OR
NOT

SIGNIFICADO
Y LOGICO
O LOGICO
NO NEGACIOn

Para que el computador evale como CIERTA una condicin compuesta que contiene el
operador lgico and, las dos condiciones simples deben ser ciertas.
Para que el computador evale como CIERTA una condicin compuesta que contiene el
operador lgico or, basta con que una de las condiciones simples sea cierta.
La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta
dada por la relacin donde n = cantidad de condiciones, la primera mitad de ellos
ciertos y la segunda mitad falsos.
Ejemplo, si formamos una condiciona compuesta con dos condiciones simples y el
operador lgico y, la cantidad total de casos posibles serian
, y se puede
construir la siguiente tabla de verdad.
Tabla de verdad con and
1cs 2cs Eval

CCC
CFF
FCF
FFF

La evaluacin final se obtiene usando la regla anteriormente descrita para una condicin
compuesta, que contiene el operador and.
Esta tabla significa lo siguiente;
1.- Cualquiera que san la cantidad de datos procesados siempre caer en uno de estos
cuatro posibles casos.
La tabla de verdad para una condicin compuesta con OR es la siguiente;
1cs 2cs Eval

CCC
CFC
FCC
FFF

Como se observa, una condicin compuesta con OR, es menos restrictiva, o el 75%
de los casos terminaran ejecutando el grupo CIERTO de instrucciones de la instruccin
condicional.
Construir una tabla de verdad para una condicin compuesta de tres o mas condiciones
simples, es tambin tarea sencilla, solo recordar que;
1.- La cantidad posible de casos es
y la otra mitad empiezan c con falso.

casos posibles, la mitad empiezan con Cierto

2.- Para evaluar esta condicin triple, primero se evalan las dos primeras incluyendo su
operador, bajo las reglas ya descritas y luego se evala, el resultado parcial contra la
ultima condicin, y ultimo operador, para obtener la evaluacin final.

Ejemplo una condicin compuesta de tres condiciones simples, donde el primer


operador lgico es el y y el segundo operador lgico es el O, dara la siguiente tabla
de verdad.
1cs 'y' 2cs Eva Parcial 'o' 3cs Eva final

CCcCc
CCcFc
CFfCc
CFfFf
FCfCc
FCfFf
FFfCc
FFfFf

TAREAS PROGRAMACION BORLAND DELPHI


1.- Construir un programa que capture un numero cualesquiera e informe si es o no es
mayor de 50 y mltiplo de tres. ( solo escribir el mensaje de respuesta de manera muy
clara y esto resuelve el problema )
2.- Construir un programa que indique si un numero es un par positivo.
3.- Capturar los datos de un producto incluyendo su cantidad en existencia, construir un
panel que despliegue una orden de compra si la cantidad en existencia del producto es
menor que el punto de reorden, o si el origen del producto es nacional.
4.- Construir el programa del ejemplo del empleado, pero construirlo con tres ventanas,
la del empleado, la del cheque y la del bono.
6.- DELPHI INSTRUCCION CASE

Tambin existen ocasiones o programas donde se exige evaluar muchas condiciones a la


vez, en estos casos, o se usan una condicin compuesta muy grande o se debe intentar
convertir el problema a uno que se pueda resolver usando la instruccin case;

La instruccin case es una instruccin de decisin mltiple, donde el compilador prueba


o busca el valor contenido en una variable contra una lista de constantes ints o chars,
cuando el computador encuentra el valor de igualdad entre variable y constante,
entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra
el valor de igualdad entre variable y constante, entonces ejecuta un grupo de
instrucciones asociados a un default, aunque este ultimo es opcional.
El formato de esta instruccin es el siguiente;

capturar o asignar variable de condicin;


CASE var int o char OF
const1: begin instruccin(es); end;
const2: begin instruccin(es); end;
const3: begin instruccin(es); end;
else begin instruccin(es); end
END;

OBSERVAR donde se usan y donde no se usan los ( : ) y los ( ; )


Mejor un ejemplo practico:
Codigo:
procedure TForm1.Button1Click(Sender: TObject);
begin
case Edit1.Text[1] of
'a': begin Label2.Caption := 'AGUILA'; end;
'b','B': begin Label2.Caption := 'BECERRO'; end;
'c': begin Label2.Caption := '5 ' + 'CABALLOS'; end;
else begin Label2.Caption := 'No Hay' end;
end
end;

Corrida:

Recordar que la propiedad Text de cualquier componente, puede usar o accesar


cualquier [posicin o carcter] usando los corchetes por ejemplo;
si Edit4 = Juan entonces:
Label3.Caption = Edit4Text[2]; pasa solo la 'u' al caption
Notas:
1.- Solo se puede usar como variable de condicin una variable entera o variable char.
2.- Se esta usando como variable de condicin, solo la primera letra o carcter de la caja
de edicin, que es equivalente a una variable char.
3.- Observar que usando corchetes ej. [posicin] en la propiedad Text, se puede
referenciar o procesar cualquier carcter dentro del Texto.
4.- Las constantes que estamos buscando y comparando son de tipo char, por eso se
deben encerrar entre apstrofes ( ').
5.- Si se quiere resolver el problema de maysculas o minsculas en el teclado, observar
que las dos constantes se separan con comas,
En particular, instrucciones de tipo case se utilizaban para construir programas de
seleccin de mens, donde al usuario se le planteaban dos o tres problemas distintos y el
propio usuario seleccionaba cual de ellos quera ejecutarse.
TAREAS BORLAND DELPHI
1.- Construir una ventana que contenga el siguiente men

1. conversin de pesos a dlares


2. conversin de libras a kilogramos
3. conversin de kilmetros a millas

4. fin de men
seleccionar opcin [ ] Este es el edit del switch().

Para resolver este programa, primero disear las cuatro formas o ventanas que se
ocupan, y en la primera forma que contiene el men para el usuario, programar el
evento onclick del Button de ordenes con la instruccin case, los case solo contienen
cdigo para llamar o poner a la vista del usuario la ventana o forma respectiva.
Y adems recordar poner en cada ventana de solucin de un problema un botn de
orden, con cdigo de regreso a la ventana de men, solo escribir en el Caption de este
botn la palabra [men] y en su evento OnClick ocultar la ventana de problema y poner
visible la ventana o forma del men o mejor aun usar los bitbuttons.
2.- Construir un programa que capture un deporte y despliegue la imagen de dos
implementos deportivos apropiados, usar los componentes de imagen de borland delphi.
3.- Evaluar cualquier funcin vista para cuando x =3,-4, 5
7.- DELPHI COMPONENTES VISUALES DE SELECCION Y DECISIN

Las instrucciones if y case, nos permiten tomar decisiones o realizar seleccionase dentro
del cdigo de un programa.
BORLAND DELPHI proporciona una serie de componentes visuales que permiten al
usuario, no al programador, tomar decisiones en pantalla, el programador solo se
encarga de implantar cdigo adecuado a la decisin tomada por el usuario.
8.- COMPONENTE CheckBox (Standard) DELPHI

El componente CheckBox permite seleccionar una opcin al usuario del programa o


tomar una decisin, directamente en pantalla.
Es la propiedad Text del componente donde se escribe sentido de la seleccin ej.;

En los ejemplos, los componentes checkbox, son las cajas donde el usuario toma un
decisin (ej. 3) o realiza una seleccin (ej. 1,2)
Existen dos maneras de programar este componente:
- Cuando el usuario selecciona un checkbox la propiedad Checked refleja esta decisin
quedando cargada con las constantes true o false, en estos casos solo validar con un if
por cada CheckBox dentro de nuestro botn de ordenes, el estado de dicha propiedad.
Programa ejemplo:
procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckBox1.Checked Then
Begin Label1.Caption := 'CALIENTE' end
else begin Label1.Caption := ' '; end;
if CheckBox2.Checked Then
Begin Label2.Caption := 'FRIO' end
else begin Label2.Caption := ' '; end;
if CheckBox3.Checked Then
Begin Label3.Caption := 'TEMPLADO' end
else begin Label3.Caption := ' '; end;
end;

corrida:

Notas:
1.- Observar que por cada checkbox en la forma se ocuapara un if.
2.- La propiedad Checked estara cargada con TRUE o FALSE al ejecutarse el programa
y por tanto la instruccion IF ejecutara la parte cierta o la parte falsa de instrucciones
apropiada, es decir se uso CHECKBOX.CHECKED directamente en la instruccion
porque seria equivalente a CHECKBOX.CHECKED = TRUE.
b) El segundo mtodo para programar el componente, involucra el evento OnClick de
este componente CheckBox, este evento OnClick es activado automticamente en
cuanto el usuario realiza o marca o toma su seleccin, es claro que si no se programa
este evento el usuario no observara ningn proceso, sino que tendr que indicar que ya
hizo su decisin, apretando el botn de OK.
Pero si se programa el evento OnClick de este componente con el cdigo adecuado, ni
se tendr que agregar un botn OK, ni se ocupara usar un if(Checked), porque el usuario
ya indico cual es su decisin o seleccin.
Recordar que para programar este evento OnClick, solo hacer un dobleclick, dentro del
componente.
Este mtodo es el mejor porque evita cdigo de mas y cada componente solo tiene
asociado el cdigo que ocupa.
TAREAS PROGRAMACION BORLAND DELPHI
1.- Evaluar la funcin
para x 2,-5, 8 (usar un CheckBox por cada
valor de x, y programar cada evento OnClick de cada CheckBox con la operacin
correspondiente y el despliegue del resultado).
2.- Construir un panel con los datos de un automvil, un segundo panel muestra un plan
de financiamiento a dos aos y un tercer panel muestra un plan de financiamiento a tres
aos. ( son dos checkbox en el primer panel y no hay botn de ok).
3.- Construir el programa de men, que se dejo en el tema de instruccin case ( aqu no
se ocupa case ni pedir la opcin, ni botn de ok, solo un CheckBox programado a un
lado de cada opcin del men).

9.- COMPONENTE RadioButton ( Standard ) DELPHI

Se utilizan para presentar al usuario un conjunto de opciones mutuamente excluyentes


entre si, es decir si el usuario selecciona un componente RadioButton todos los dems
componentes RadioButton en la forma, se desmarcan solos, o se deseleccionan solos,
como mejor se entienda.
Es su propiedad Caption donde se pone el texto que identifica el propsito del botn, es
su propiedad Checked quien refleja el cambio( True , False ),tambin su evento onclick
es activado automticamente cada vez que es seleccionado el RadioButton por el
usuario.
Recordar tambin que cuando el usuario selecciona un RadioButton, todos los dems
RadioButton en el objeto(forma o ventana) son deseleccionados automticamente esto
es por que dos RadioButton son mutuamente excluyentes entre si.
Esta ultima situacin deber resolverse por parte del programador, es decir se supone un
programa donde el usuario debe seleccionar uno de entre dos sexos y uno de entre cinco
municipios, en este caso se ocupan ocho RadioButton, pero como todos son
mutuamente excluyentes entre si, cuando el usuario seleccione uno de ellos, todos los
dems se desmarcaran automticamente.
Para resolver este problema se deber usar los ya ampliamente conocidos y practicados
componentes de agrupamiento, como son el componente Panel y el componente
GroupBox.
Es decir se deber encerrar en su propio panel o GroupBox todos los RadioButton
lgicos, es decir en un Panel los de sexo, en otro Panel los de municipios, etc.
De esta manera BORLAND DELPHI los evala por separado y se puede tener
seleccionado un RadioButton en cada Panel.
TAREAS PROGRAMACION BORLAND DELPHI
1.- Disear y construir tres problemas similares a los resueltos con el componente
CheckBox.
10.- COMPONENTE RadioGroup(Standard) DELPHI
Aunque es comn agrupar un conjunto de RadioButton dentro de componentes
Panel Y RadioGroup, BORLAND DELPHI proporciona este componente RadioGroup
que esta especializado en la agrupacin de RadioButton.
Un componente u objeto RadioGroup es una caja especial que solo contiene
componentes RadioButton, tambin cuando el usuario marca o selecciona uno de ellos,
todos los dems se desmarcan o deseleccionan .

Para aadir los RadioButton a el componente RadioGroup, solo editar la propiedad


Items en el Inspector de Objetos, que entonces nos muestra el minieditor de strings ya
visto y practicado en el tema de ListBox, solo recordar que cada rengln en el editor
corresponder a un RadioButton dentro del RadioGroup.
[[|Para procesar o programar el RadioButton seleccionado por el usuario, [[|[[|solo usar
la propiedad ItemIndex que queda cargada con el numero [[|[[|de RadioButton
seleccionado por el usuario.]]]]]]]]]]
Este cdigo deber usarse dentro del evento OnClick de un componente Button(OK).
ejemplo

if(Form5.RadioGroup3.ItemIndex==4){ cdigo a ejecutar si el usuario selecciono el


RadioButton 4 del RadioGroup 3 etc. };

Tambin se pueden desplegar los botones en una o mas columnas, usando la propiedad
Columns en el Inspector de Objetos, para indicarle cuantas columnas de RadioButton se
quieren manejar.
TAREAS BORLAND DELPHI
1.- CAPTURAR LOS CINCO DATOS MAS IMPORTANTES DE UN CLIENTE,
USANDO RadioButton PARA LAS RESPUESTAS, UN SEGUNDO PANEL ABAJO
EN LA FORMA DESPLIEGA EN COMPONENTES NORMALES EDIT O LABEL
LAS SELECCIONES DEL USUARIO
2.- CONSTRUIR UN CUESTIONARIO DE 6 PREGUNTAS SOBRE LOS HABITOS
DE ESTUDIO DE UN ESTUDIANTE.
3.- CONSTRUIR UN CUESTIONARIO DE 5 PREGUNTAS CON LAS
PREFERENCIAS POLITICAS DE UNA PERSONA, UN PANEL ABAJO
DESPLIEGA UN CONCENTRADO CON TOTALES Y PORCENTAJES
ACUMULADOS POR CADA PREGUNTA.
ES DECIR UN USUARIO RESPONDE EL CUESTIONARIO APRIETA EL BOTON
DE OK, EL PANEL DE ABAJO SE ACTUALIZA PARA MOSTRAR TOTALES Y
PORCIENTOS DE CADA PREGUNTA, Y SE LIMPIAN LAS RESPUESTAS, UN
SEGUNDO USUARIO RESPONDE EL CUESTIONARIO. Y ASI
SUCESIVAMENTE.

PARA TOTALES Y PORCENTAJES, SOLO RECORDAR DOS DE LOS


CONCEPTOS MAS ELEMENTALES DE PROGRAMACION BASICA.

CONTADORES ;

CONT=CONT+1 RESULTADO 1, 2, 3,4,5,.

ACUMULADORES ;

ACUM = ACUM + CONT RESULTADO CON EL EJEMPLO DE ARRIBA


1,3,4,10,15
RECORDAR LAS CAJAS EDIT TAMBIEN PUEDEN FUNCIONAR COMO
CONTADORES O ACUMULADORES.

NO SE OCUPA CONVERTIRLAS A VARIABLES, TRABAJARLAS


DIRECTAMENTE

11.- COMPONENTE MainMenu(Standard)DELPHI

Con este componente MainMenu se forman las barras de men normales en cualquier
programa de Windows (la barra que contiene File, Edit, etc.) junto con sus opciones
correspondientes.
Cuando se pone este componente en una forma, se deber entender que form1 ahora
mostrara o desplegara una barra de men, tal como si fuese una ventana normal de
Windows.
Para construir un programa de seleccin de men;
1.- Poner un componente MainMenu en una parte de la forma donde no estorbe (esto es
porque este componente queda flotando dentro de Form1 y solo activa o se convierte en
barra de men al momento de ejecucin del programa).
2.- Para cargarle las opciones, no del cdigo que ejecutara cada opcin, solo dobleclick
dentro de este componente para que aparezca el siguiente diseador de mens.

1.- No es Form1, es una forma especial que se parece mucho, pero solo se activa cuando
se hace un dobleclick en un componente MainMenu.
2.- La barra superior es el men, cada opcin del men ( Moneda, Temperatura,
Distancias, etc.) tienen sus propias subopciones o submenus.

3.- Para escribir las opciones( Moneda, Temperatura, etc.) primero hacer un click en la
parte correspondiente (en el lugar que ocupan o donde se desplegaran) y escribir en la
propiedad Caption del Inspector de Objetos la palabra correspondiente.
4.- Para escribir las subopciones, primero hacer click en la opcin correspondiente ( por
ejemplo en la parte donde esta la palabra Distancias) y ya aparece abajo de ella la
primera subopcion marcada y seleccionada (es un cuadrito que se pone abajo de
Distancias) y escribir en el Caption Del Inspector de Objetos la palabra adecuada a la
subopcion correspondiente (ejemplo Millas-Kms), al escribir y usar tecla <ENTER> en
el caption ya aparece el cuadrito de la segunda subopcion.
5.- Para marcar una letra de una opcin o subopcion como HotKey ( lo siento no se
pudo traducir), solo poner el signo & antes de la letra correspondiente.
6.- Con los pasos 3,4,5 ya queda construido el men, pero ahora falta cargarles el
cdigo o programa a ejecutar por y a cada opcin o subopcion del men, recordar que
estos eventos tambin se activan al hacer un click el usuario en cada opcin o a
seleccionar la primera letra(si se uso el &), para cargar cdigo entonces.
7.- Solo dobleclick en la opcin o subopcion correspondiente y ya aparece el minieditor
de programas, listo con el evento OnClick de la opcin o subopcion correspondiente.
8.- El cdigo a escribir en la mayor parte de los casos, solo consiste en ocultar la
ventana principal y llamar la ventana que contendr el programa correspondiente a la
opcin deseada.
9.- Para terminar y regresar a la forma principal solo click en la X del diseador de
mens.
TAREAS PROGRAMACION BORLAND DELPHI
1.- EL DE LA MUESTRA CON DOS CONVERSIONES MONETARIAS, DOS
OPCIONES DE TEMPERATURAS Y DOS DE DISTANCIAS.

PRIMERO DISEAR Y CONSTRUIR TODAS LAS FORMAS QUE VA A


OCUPAR

NO OLVIDE PONER ALGUNAS LABELS DE ENCABEZADO EN LA


VENTANA PRINCIPAL

EN EL BOTON OK O EN OTRO BOTON SIMILAR DE CADA VENTANA DE


TRABAJO NO OLVIDAR AGREGAR CODIGO PARA OCULTAR DICHA
VENTANA Y REGRESAR A LA VENTANA CON EL MENU PRINCIPAL.
12.- COMPONENTE PopupMenu (Standard)DELPHI

Este componente encapsula propiedades, mtodos y eventos de un men popup, este


minimenu se activa cuando el usuario hace un click derecho en muchos componentes
que lo pueden contener.
Un ejemplo;

Recordar que este componente PopupMenu se tiene que pegar a otro componente, por
ejemplo un Label o un Edit, etc.
Para crear un PopupMenu, solo seleccionar el componente PopupMenu en la barra de
componentes y ponerlo en una parte de la forma donde no estorbe (tambin queda
flotando).
Para cargarlo de opciones solo dobleclick en dicho componente e igual que en
componente MainMenu, sale el minieditor, click en la parte donde va la opcin escrita y
escribir la palabra en la propiedad Caption del Inspector de Objetos.
Para cargarle el cdigo a cada opcin , solo dobleclick en la opcin correspondiente.
Para salirse del minieditor, solo click en la [X] de arriba.
Por ultimo y muy importante, recuerde que se tiene que pegar a un componente
cualesquiera, para esto solo seleccionar el componente y click en la propiedad popup del
componente, sale la lista con todos los componentes PopupMenu que ya se hayan
construidos.
TAREAS PROGRAMACION BORLAND DELPHI
1.- CONSTRUIR UN MENU CON LAS SIGUIENTES OPCIONES:
[AUTOS] FINANCIAMIENTO A 2,3,4 aos
[LAVADORAS] FINANCIAMIENTO A 2,3 aos
13.- CICLO FOR DELPHI
Instrucciones para ciclos, resuelven el problema de repetir todo el programa, o cierta
parte del programa mas de una vez.

Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones, sobre
todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una
instruccin simple o compuesta.
Su formato general es:
for VARCONTROL := ValorInicial to ValorFinal do
begin instrucciones; end;
ejemplo:

FOR x :=1 TO 10 DO
BEGIN Label4.Caption := 'pato'; END;

Casos Particulares;
1.- El ciclo comienza en uno y se incrementa de uno en uno, este es el caso mas general.
2.- Pero el valor inicial puede se diferente de uno, ejemplo;
for x := 5 to 15 DO begin etc
3.- Incluso el valor inicial puede ser negativo, ejemplo;
for x := -3 to 8 do etc
4.- Los incrementos tambin pueden ser diferentes al de uno en uno, solo alterar el
contador de ciclos dentro del for pero tener cuidado que el ultmo cambio no se salga del
limite del ciclo y usar un if para validar el limite de contador;
for x := 1 to 20 do begin inst(es) x := x + 3 if x 20 then x x:=19 etc..
5.- Un ejemplo para usarlo en los problemas sugeridos mas adelante;
ejemplo;
desplegar los nmeros enteros, comprendidos entre el 10 y el 20.
Ocupamos ahora un componente que pueda almacenar y desplegar un conjunto de los
10 resultados, el nico componente visto hasta ahora con esta capacidad es el
componente ComboBox, sin embargo existe otro componente llamado
ListBox(Standard), muy similar a ComboBox, excepto que no tiene encabezado y todos
sus elementos los mantiene a la vista del usuario, no ocultos como el ComboBox, dicho
componente ListBox se analiza a fondo en la siguiente unidad, pero es el que de

momento permite resolver el problema del for (desplegar un conjunto de datos o


resultados a la vez).
Tanto ComboBox como ListBox permiten cargar todos sus elementos o valores, dentro
de un programa, usando un mtodo llamado Add(valor) en su propiedad Items, como se
ve en el siguiente programa ejemplo;
Para este problema se ocupa poner en Form1, un componente Button OK que en su
evento OnClick contiene el for y la carga del componente ListBox, con el siguiente;
Pantalla de diseo

Programa
procedure TForm1.Button1Click(Sender: TObject);
var
x:integer;
begin
For x:= 10 to 20 do
begin ListBox1.Items.Add(IntToStr(x));
end;
end;

La pantalla de salida debe ser igual o parecida a la siguiente;

Este procedimiento y mtodo igualmente trabaja con un componente ComboBox.


Recordar que todos los componentes visuales analizados hasta ahora, en sus
propiedades text o caption, entran y salen puras strings.
Por eso en el programa se uso la funcion IntToStr(variable entera) para cargar una string
en el componente LISTBOX.
Practicar hasta conseguir tener esta pantalla de salida o de ejecucin, cuando se consiga
entonces ya se esta listo para lo siguiente.
TAREAS PROGRAMACION BORLAND DELPHI
1.- CONSTRUIR UN PROGRAMA QUE DESPLIEGUE LOS NUMEROS DEL 20 AL
30.
2.- DESPLEGAR LOS ENTEROS ENTRE 30 Y 50 ACOMPAADOS DE SU
POTENCIA CUADRADA Y RAIZ CUBICA RESPECTIVA ( OCUPA TRES ListBox o
mejor aun, un solo listbox y vayan encadenando las trings temporales con el signo + ).
3.- DESPLEGAR UNA TABLA DE MULTIPLICAR QUE EL USUARIO INDIQUE .
14.- CICLO WHILE DELPHI

En este ciclo el cuerpo de instrucciones se ejecuta mientras una condicin permanezca


como verdadera, en el momento en que la condicin se convierte en falsa el ciclo
termina.
Su formato general es :
Cargar o inicializar variable de condicion;
while ( condicion ) do
begin
instrucciones;
instruccion de salida de ciclo ;
end;
programa ejemplo;
var
x:integer;

begin
x:=1;
while (x<=10) do
begin
ListBox1.Items.Add(IntToStr(x)+' pato');
x:=x+1;
end;
end;

corrida:

While puede llevar dos condiciones, en este caso inicializar 2 variables de condicin y
cuidar que existan 2 de rompimiento de ciclo.
El grupo cierto de instrucciones puede ser una sola instruccin o todo un grupo de
instrucciones.
La condicin puede ser simple o compuesta.
A este ciclo tambin se le conoce tambin como ciclo de condicin de entrada prueba
por arriba, porque este ciclo evala primero la condicin y posteriormente ejecuta las
instrucciones.
TAREAS PROGRAMACION BORLAND DELPHI
1.- DESPLEGAR ENTEROS ENTRE 50 Y 80
2.- DESPLEGAR MULTIPLOS DE 4 ENTRE 60 Y 20 ACOMPAADOS DE SU
LOGARITMOS DE BASE 10 Y BASE e RESPECTIVOS ( A REVISAR LA AYUDA
Y BUSCAR LAS FUNCIONES MATEMATICAS DE BORLAND DELPHI )
3.- CONSTRUIR LA TABLA DE DIVIDIR QUE EL USUARIO INDIQUE.

15.- CICLO REPEAT UNTIL DELPHI

Su diferencia bsica con el ciclo while es que la prueba de condicin es hecha al


finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez, porque
primero ejecuta las instrucciones y al final evala la condicin;
Tambin se le conoce por esta razn como ciclo de condicin de salida.
Su formato general es :
cargar o inicializar variable de condicin;
repeat
instrucciones ;
instruccion de salida del ciclo
until (condicion) ;
programa ejemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
x:integer;
begin
x:=1;
repeat
ListBox1.Items.Add(IntToStr(x)+' gato');
x:=x+1;
until (x>=10);
end;

CORRIDA:

Otra diferencia bsica con el ciclo while es que, aunque la condicin sea falsa desde un
principio, el cuerpo de instrucciones se ejecutara por lo menos una vez.
TAREAS PROGRAMACION BORLAND DELPHI
1.- DOS DE LAS DEL FOR
2.- DOS DE LAS DEL WHILE
16.- CONCLUSIONES CICLOS DELPHI
El problema de dado un problema cualesquiera en borland delphi , cual ciclo se debe
usar se resuelve con:
Si se conoce la cantidad exacta de veces que se quiere que se ejecute el ciclo o si el
programa de alguna manera puede calcularla usar for.
Si se desconoce la cantidad de veces a repetir el ciclo o se quiere mayor control sobre la
salida o terminacin del mismo entonces usar while.
Si se quiere que al menos una vez se ejecute el ciclo entonces usar repeat until .

III UNIDAD ARREGLOS


1.- INTRODUCCION DELPHI

Uno de los problemas mas comunes en los diversos sistemas de informacin, es el


tratamiento o procesamiento de una gran volumen de datos o de informacin.
Variables o componentes visuales manejados hasta ahora, no pueden ayudar a resolver
este problema.
Las variables usadas hasta ahora reciben propiamente el nombre de variables escalares,
porque solo permiten almacenar o procesar un dato a la vez.

No confundir esto con el tipo de dato o rango de datos que una variable tiene la
capacidad de almacenar.
Por ejemplo si se quiere almacenar nombre y edad de 15 personas, con el mtodo
tradicional se ocuparan 30 variables o 30 componentes visuales, y solo es nombre y
edad de 15 personas, agreguen mas datos y mas personas y ya es tiempo de empezar a
analizar otro tipo de variables y de componentes.
Es decir, en problemas que exigen manejar mucha informacin o datos a la vez,
variables escalares o componentes visuales de manipulacin de datos normales (edit,
label, etc.), no son suficientes, ya que su principal problema es que solo permiten
almacenas un dato a la vez.
Se ocupa entonces variables o sus correspondientes componentes visuales que sean
capaces de almacenar y manipular conjuntos de datos a la vez.
Variables de tipo arreglo y sus correspondientes componentes visuales, si permiten
almacenar y procesar conjuntos de datos del mismo tipo a la vez.
Cada dato dentro del arreglo, se le llama elemento del arreglo y se simboliza y
procesa(captura ,operacin ,despliegue ), usando el nombre del arreglo respectivo y un
subndice indicando la posicin relativa del elemento con respecto a los dems
elementos del arreglo.

NOMBRES
Juan
Pedro Nombres[2]
Jos
Ana Nombres[4]
Carmen

EDAD
18 Edad[1]
20
25
30 Edad[4]

Sin embargo sus problemas son similares a los de variables normales, es decir hay que
declararlos, capturarlos, hacer operaciones con ellos, desplegarlos, compararlos, etc.
Para propsitos del aprendizaje se analiza o clasifican en grupos diferentes los arreglos
que ofrece BORLAND DELPHI, ellos son;
1.- Arreglos tradicionales en PASCAL (internos dentro del programa)
2.- Componentes Visuales de tipo Arreglo
2.- ARREGLOS TRADICIONALES EN DELPHI
En programacin tradicional siempre se manejan dos tipos de arreglos, los arreglos tipo
listas, vectores o unidimensionales y los arreglos tipo tablas, cuadros, concentrados,
matrices o bidimensionales, en ambos casos son variables que permiten almacenar un
conjunto de datos del mismo tipo a la vez, su diferencia es en la cantidad de columnas
que cada uno de estos tipos contiene, como en los siguientes ejemplos;
1. ARREGLOS TIPO LISTA
Juan
Pedro Nombres[2]
Jos
Ana Nombres[4]
Carmen

18 Edad[1]
20
25
30 Edad[4]

1. ARREGLOS TIPO TABLAS

CIA ACME

ING MENS VTAS


(MILES DE $)
ENE FEB MAR ABR MAY
SUC A 10 12 15 10 9
SUC B 8 7 5 9 6
SUC C 11 18 20 14 17

INST TECN DE TIJUANA


CONCENTRADO DE CALIF
MAT FIS QUIM HIST
JUAN 5 5 5 5
JOSE 4 4 4 4
PEDRO 3 3 3 3
ANA 9 9 9 9

Como se observa, la diferencia principal entre un arreglo tipo lista, y un arreglo tipo
tabla, son las cantidades de columnas que contienen.
NOTA IMPORTANTE.- LOS CONCEPTOS MANEJADOS AQUI ESTAN
ENFOCADOS A LOS SISTEMAS DE INFORMACION CONTABLES
FINANCIEROS ADMINISTRATIVOS.
EN ALGEBRA MATRICIAL, SI SON IMPORTANTES LOS CONCEPTOS DE
VECTORES Y MATRICES, PERO LAS OPERACIONES Y METODOS SON
PRECISAMENTE LOS DEL ALGEBRA MATRICIAL Y NO ES PROPOSITO O
LUGAR INDICADO PARA TRATAR PROBLEMAS Y OPERACIONES CON
MATRICES.
3.- ARREGLOS TIPO LISTA DELPHI

Un arreglo tipo lista se define como una variable que permite almacenar un conjunto de
datos del mismo tipo organizados en una sola columna y uno o mas renglones.

Tambin reciben el nombre de vectores en lgebra, o arreglos unidimensionales en


programacin.
Los procesos normales con una lista o con sus elementos, incluyen declarar toda la lista,
capturar sus elementos, desplegarlos, realizar operaciones con ellos, desplegarlos, etc.
Para declarar una lista se usa el siguiente formato;
VAR
nomlista :array [1..n] of Integer;
* ESTO SIGNIFICA que el arreglo debera declararse en la parte VAR publica del
programa (AL PRINCIPIO DEL PROGRAMA ARRIBA DEL
PROCEDIMIENTO BUTTONCLIK SE ENCUENTRAN ESTAS PARTES VAR Y
TYPE DEL PROGRAMA)
* Y el indice (n) es la cantidad de elementos de la lista.
ejemplos;

VAR
Edades : array[1..12] of integer;
Sueldos : array[1..10] of Real;
Municipios : array[1..5] of string[20];
Nota: en caso de listas de strings observar que la string se le asigna un tamao
especifico.

notas:
Declaracin.- Es necesario recordar, que la declaracin de un arreglo tipo lista se puede
hacer en dos lugares diferentes, dependiendo de si solo se usa un botn de ordenes en la
pantalla, o si dos o mas botones de ordenes, estarn procesando el arreglo, el segundo
caso, es el mas comn.
Si un solo botn, en toda la ventana va a realizar, todos los procesos ( declaracin,
captura, operaciones, comparaciones, despliegue), con la lista, solo hacer la declaracin
de la lista, al principio del evento onclick, como lo muestra el programa ejemplo.
El dato capturado, proviene de momento de un componente visual escalar y por tanto
para capturas se usan algunas variables de control como lo muestra el siguiente
programa ejemplo, para capturar y procesar cuatro edades, el cdigo y pantalla se es;

Programa ejemplo;
var
Form1: TForm1;
edad : array[1..5] of integer;
ren:integer=1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
if ren <= 5 then
begin
edad[ren]:=StrToInt(Edit1.Text);
ListBox1.Items.Add(IntToStr(edad[ren]));
ren := ren + 1 ; Edit1.Text :=' ';
end;
if ren = 6 Then ShowMessage ('LISTA LLENA');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
r:integer;
begin
for r := 1 to 5 do
begin
ListBox1.Items.Add(IntToStr(edad[r] * 12));
end;
end;

Pantalla de corrida

Notas:
La declaracion del arreglo y la variable de control renglon se realiza en la parte VAR del
PROGRAMA no las partes verdes de var que se han puesto dentro del procedimiento
buttonclick como se ha realizado en todos los programas que se han construido hasta la
fecha.
Recordar que estas variables son globales o compartidas por todos los procedimientos o
eventos del programa.
Se uso un componente nuevo el ShowMessage('MENSAJE'); para desplegar un
mensaje de lista llena.
Para el caso de operaciones y comparaciones con todos los elementos de la lista a la
vez, se deber usar un ciclo for con una variable entera llamada rengln, misma que
tambin se usara como ndice de la lista como se hizo en el problema ejemplo.

Recordar que todos los datos internos de la lista estarn almacenados en la memoria ram
del computador, para despliegues se usa un componente visual que permite manipular
un conjunto de datos a la vez, el ListBox, pero se tiene que usar un ciclo for() para ir
aadiendo o agregando elemento por elemento como se observa en el problema ejemplo
que se ha venido desarrollando.

TAREAS PROGRAMACION BORLAND DELPHI


1.- Capturar y desplegar 5 precios de productos cualesquiera, usando dos panel, uno
para capturar y uno para desplegar.
2.- Capturar 4 sueldos en un panel, desplegarlos aumentados en un 25% en otro panel.

3.- Capturar los datos de 5 productos comprados en una tienda, incluyendo nombre,
precio y cantidad en sus 3 listas respectivas, despus calcular una cuarta lista con el
gasto total por cada producto desplegarlo todo en un segundo panel e incluir tambin el
gran total.
4.- Capturar en una lista solamente 6 nmeros mltiplos de 5, se debe de estar capture y
capture nmeros hasta que se completen los 6 mltiplos de 5.
4.- BORLAND DELPHI ARREGLOS TABLA

Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados
en dos o mas columnas y uno o mas renglones.
Para declarar un arreglo de este tipo se usa el siguiente formato:
VAR
Nomtabla: array[1..1,1..c] of Integer;
Para procesar ( recordar solo operaciones y comparaciones) internamente todos los
elementos de la tabla se ocupan dos ciclos for uno externo para controlar rengln y uno
interno para controlar columna.
Solo recordar que en capturas, se debern usar logica de control ya sea con variables
globales o se pueden usar controles o componentes ocultos de tipo label o edit y en
despliegue usar un ListBox como lo muestra el programa ejemplo.
Programa delphi
var
Form1: TForm1;
calif : array[1..3,1..4] of integer;
ren:integer=1;col:integer=1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Label2.Caption:=IntToStr(ren);
Label3.Caption:=IntToStr(col);
calif[ren,col]:=StrToInt(Edit1.Text);

col := col+1;
Edit1.Text :=' ';
if (col=5) then
begin ren:=ren+1; col:=1;
end;
if (ren=4)
then
begin
ShowMessage('TABLA LLENA');
Edit1.Visible := false;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
r:integer;c:integer;
temp:string;
begin
for r := 1 to 3 do
begin
for c:= 1 to 4 do
begin
// operaciones calif + 10 puntos
calif[r,c]:=calif[r,c]+10;
// juntando columnas para desplegar
temp:= temp + IntToStr(calif[r,c])+ ' ';
end;
// desplegando
ListBox1.Items.Add(temp);
temp:='';
end;
end;

Pantalla de salida

TAREAS PROGRAMACION BORLAND DELPHI


1.- CONSTRUIR UN CUADRO QUE CONTENGA LOS COSTOS FIJOS DE
CUATRO PRODUCTOS CUALESQUIERA, QUE SE PRODUCEN EN TRES
PLANTAS DIFERENTES DE UNA EMPRESA MAQUILADORA.
2.- CONSTRUIR UN CUADRO QUE CONTENGA LOS INGRESOS MENSUALES
POR VENTAS DURANTE LOS TRES PRIMEROS MESES DEL AO DE CUATRO
SUCURSALES DE UNA CADENA DE AUTOREFACCIONES, AGREGAR AL
FINAL UNA LISTA QUE MUESTRE LOS INGRESOS MENSUALES TOTALES
POR MESES Y UNA SEGUNDA LISTA QUE MUESTRE LOS INGRESOS
MENSUALES TOTALES POR SUCURSAL.
3.-CONSTRUIR UN CUADRO QUE CONTENGA LAS COMISIONES GANADAS
POR TRES VENDEDORES DIFERENTES DE 5 TIPOS DE MUEBLES DE LINEA
BLANCA, AGREGAR ADEMAS LISTAS DE COMISIONES TOTALES POR
VENDEDORES Y POR TIPO DE MUEBLE Y LISTAS DE COMISIONES
PROMEDIO POR VENDEDORES Y POR TIPO DE MUEBLES.
SUGERENCIA; PRIMERO HACER UN BOSQUEJO EN PAPEL DE COMO
QUEDARAN LOS CUADROS Y LAS LISTAS EN PANTALLA.
5.- COMPONENTE ListBox (Standard) DELPHI

Este componente permite procesar visualmente un conjunto de elementos de tipo string.


Este componente hereda muchas de las propiedades y mtodos de TStringList y
TStrings, que son las clases bases de las cuales hereda propiedades y metodos, mas
algunas propiedades y mtodos propios tales como:

1.-Propiedades;

Capacity.- Es la cantidad o tamao del arreglo de apuntadores a los objetos en la lista.


Count.- Numero de objetos contenidos actualmente en la lista Items.- Se usa para
referenciar o accesar los objetos en la lista.
Recordar que las propiedades en un programa, se manejan con el formato
nomobjeto.nompropiedad.

2.- Mtodos;

Add.- Inserta un objeto nuevo al final de la lista y regresa el lugar o posicin donde hizo
la insercin.
Clear.- Se usa para vaciar el arreglo, tambin libera la memoria ocupada por los objetos
de la lista.
Delete.- Se usa para eliminar un objeto especifico, lleva como argumento o parmetro la
posicin del objeto.
Exchange.- Intercambia dos objetos de la lista.
Expand.- Se usa para agregar mas espacio para nuevos objetos en la lista.
First.- Se utiliza para regresar al primer objeto de la lista.
IndexOf.- Regresa la posicin del objeto en la lista.
Insert.- Inserta un objeto en la posicin deseada.
Last.- Regresa la posicin del ultimo objeto en la lista.
Move.- Mueve el objeto de una posicin a otra posicin.
Pack .- Compacta todos los objetos en una lista y libera la memoria ocupada por los
objetos que estaban en la parte inferior de la lista.
Remove.- Remueve o elimina un objeto especificado, el resto los recorre a la posicin
que ocupaba el objeto eliminado.
Sort.- Ordena los objetos de la lista, usando QuickSort.

Como se observa contiene muchas propiedades y mtodos que facilitan grandemente el


trabajo con los elementos de una lista.

Se puede aadir, eliminar e insertar tems en la lista usando los mtodos Add, Delete,
Insert con la propiedad Items, que tambin es de tipo TStrings.
Si se quiere que ListBox presente varias columnas, solo cambiar el valor de la
propiedad Columns, para ordenar o clasificar los tems, usar la propiedad Sorted.
Se puede permitir que un usuario realice una seleccin mltiple, poniendo la propiedad
MultiSelect en true, la propiedad ExtendedSelect determina como se realiza la seleccin
mltiple.
Para determinar cual tem en particular esta seleccionado solo validar la propiedad
Selected, para conocer cuantos tems se han seleccionado revisar los valores de la
propiedad SelCount.
Propiedades:

BorderStyle.- Despliega la lista con un marco sencillo o sin marco.


Canvas.- Se utiliza para asociar un rea de dibujo o de imagen a un tem de la lista
(consultar ayuda de esta propiedad en ListBox puesto que es interesante).
Columns.- Define una determinada cantidad de columnas para su despliegue dentro del
ListBox.
ItemIndex.- Se utiliza para seleccionar la posicin o ndice de un tem o elemento en la
lista.
Items.- Es la propiedad que mas se ha venido usando, se utiliza para accesar las diversas
propiedades y mtodos de las strings en la lista.
Sorted.- Se usa para ordenar alfabticamente los elementos de la
lista( ListBox1.Sorted := true; )
Style.- Define diversos o varios estilos o formas de ListBox.

Mtodos:

Clear.- Elimina todos los elementos a la vez.

En la practica para cargar o capturar sus elementos, se deber usar el mtodo Add, ya
que no se permite cargar directamente sus datos o elementos por el usuario del
programa, solo usar cdigo como el analizado en los temas anteriores ;
Recordar que se pueden usar todos los mtodos, para insertar, eliminar, contar, etc.
Si los valores son de tipo numrico, se pueden efectuar procesos con ellos de dos
maneras:
Pasando los valores de ListBox a una variable numrica de tipo arreglo y procesando
esta ultima variable.
Usar instrucciones directamente de proceso con las funciones INTTOSTR y
STRTOINT.
Si es necesario pasar el contenido de ListBox1 a ListBox2, solo usar la propiedad Text
en ambas, ej.; (ListBox2.Text := ListBox1.Text).
LO MAS IMPORTANTE A TOMAR EN CUENTA Y RECORDAR ES QUE A
DIFERENCIA DE ARREGLOS TRADICIONALES LISTBOX EMPIEZA SU
PRIMRE INDICE O RENGLON EN 0 ( CERO ) COMO ES COMUN EN EL
LENGUAJE DE PROGRAMACION C++, RECORDAR AJUSTAR SUS CICLOS
DE PROCESOS Y SUS CONTADORES DE CONTROL PARA QUE TOMEN
ESTA NOTA EN CONSIDERACION.
Ejemplo con ListBox, para este caso se pide capturar 5 edades en un ListBox, luego
sumarle 3 aos a cada una usando el mismo ListBox, y desplegarlas en un segundo
ListBox convertidas a meses.
Pantalla de diseo:

Cdigo:
procedure TForm1.Button1Click(Sender: TObject);
begin

ListBox1.Items.Add(Edit1.Text);
Edit1.Text := '';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
r, temp :integer;
Begin
for r:=0 to ListBox1.Items.Count - 1 do
begin
temp := StrToInt(ListBox1.Items.Strings[r]) * 12;
ListBox2.Items.Add(IntToStr(temp));
end;
end;

Pantalla de salida:

TAREAS PROGRAMAS BORLAND DELPHI


1.- CAPTURAR EN UNA LISTA LOS SUELDOS DE 6 EMPLEADOS Y
DESPLEGARLOS EN UNA SEGUNDA LISTA AUMENTADOS EN UN 30%
2.- CAPTURAR EN UNA LISTA LOS PESOS EN KILOGRAMOS DE 6 PERSONAS
DESPLEGARLOS EN UNA SEGUNDA LISTA CONVERTIDOS A LIBRAS Y
ADEMAS SOLO LOS MAYORES DE 100 LIBRAS.
3.- CAPTURAR EN SUS 4 LISTAS RESPECTIVAS MATRICULA, NOMBRE Y DOS
CALIFICACIONES DE 5 ALUMNOS, DESPUES CALCULAR UNA LISTA DE
PROMEDIOS DE CALIFICACIONES.

4.- CAPTURAR EN SUS LISTAS RESPECTIVAS NUMEMPLEADO,


NOMEMPLEADO, DIAS TRABAJADOS Y SUELDO DIARIO DE 5 EMPLEADOS,
DESPLEGAR EN OTRA PANTALLA O PANEL LA NOMINA PERO SOLO DE
AQUELLOS EMPLEADOS QUE GANAN MAS DE $300.00 A LA SEMANA.
6.- COMPONENTE StringGrid (adicional) DELPHI

Este componente es de los mas importantes, para el procesamiento de muchos datos,


permite concentrar, procesar y mostrar gran cantidad de informacin para la vista del
usuario.
Este componente presenta, manipula y procesa conjuntos de datos de tipo strings en
forma tabular, es decir en forma de tablas, matrices, cuadros concentrados, ejemplo;
CIA ACME
INGRESOS POR VENTAS MENSUALES
MILLONES DE PESOS
ENE FEB MAR ABR
SUC A 1 2 3 4
SUC B 5 6 4 5
SUC C 6 7 8 9
Recordar que son los datos numricos internos quienes se procesan (es decir, se
capturan, se realizan operaciones con ellos, se despliegan, etc.), es la informacin
externa quien le da sentido.
Y RECORDAR QUE SUS INDICES EMPIEZAN EN RENGLON=0 y
COLUMNA=0.
Algunas de sus propiedades y mtodos mas interesantes son:

ColCount.- Determina la cantidad de columnas que contendr la tabla.


Recordar que para efectos de programacin, la primera de ellas es la columna 0.
RowCount.- Determina la cantidad de renglones que contendr la tabla.
Recordar que para efectos de programacin, el primero de ellos es el rengln 0.

Fixedcol , Fixedrow.- Determinan la cantidad de columnas y renglones fijos o de


encabezado, estas propiedades ponerlas en 0.
+Options, goediting = true; Para que permita editar o capturar datos al usuario.
+Options, gotab = true; Para que el usuario pueda navegar entre celdas usando la tecla
del tabulador.
Cells[columna,rengln], Es la propiedad mas importante, porque es la que permite el
acceso a cualquier celda de la tabla, ej.
StringGrid1.Cells[1,1] := 'PATO';
Edit1.Text=StringGrid1.Cells[0,0];

Las dems propiedades investigarlas en la ayuda del borland delphi .


Para procesar todos los elementos de la tabla, solo recordar que se deben usar dos ciclos
for uno externo para controlar columnas y uno interno para controlar rengln
( observar que es lo inverso de las tablas o arreglos normales).
Ejemplo capturar una tabla de 3 * 4 enteros, y restarles 4 despus;
Pantalla de Diseo: (inspector objetos)

FORM1:

Programa;
procedure TForm1.Button1Click(Sender: TObject);
var
c,r,temp:integer;
begin
for c:=0 to 2 do begin
for r:=0 to 3 do
begin
temp:= StrToInt(StringGrid1.Cells[c,r])-4;
StringGrid1.Cells[c,r] := IntToStr(temp);
end; end; end;

Pantalla de Corrida:

[[|Un proceso muy comn con tablas, cuadros y concentrados es agregarles listas [[|[[|de
totales y promedios ya sea por columna o por rengln o ambas , por ejemplo;]]]]]]
CIA ACME
INGRESOS MENSUALES
(MILES DE PESOS)

ENE FEB MARZO TOTALSUC PROMSUC


SUC A 1 2 3 6 2
SUC B 4 5 6 15 5
SUC C 7 8 9 24 8
SUC D 10 11 12 33 11
TOTMES 22 26 30
PROMMES 5.5 6.5 7.8
En este ejemplo aparte de la tabla se ocupan 4 listas, dos para totales y dos para
promedios.
El cdigo en C++ es sencillo, pero cambiarlo a borland delphi, recordarlo y aprenderlo
para siempre:
//declaracin
float tabla[4][3], totsuc[4], promsuc[4];
float totmes[3], promes[3];
//observar tamaos de listas que referencian rengln
// listas que referencian columnas, se supone que la tabla // ya esta
capturada.
//cdigo para operaciones para totales y promedios //renglones por
sucursal:
for(reng=0;reng<=3;reng++)
for(col=0;col<=2;col++)
{ totsuc[reng]=totsuc[reng]+tabla[reng][col]; };
for(reng=0;reng<=3;reng++) promsuc[reng]=totsuc[reng] / 3.0 ;
// operaciones para totales y promedios por mes
for(reng=0;reng<=3;reng++)
for(col=0;col<=2;col++)
{totmes[col]=totmes[col]+tabla[reng][col]; };
for (col=0;col<=2;col++) prommes[col]=totmes[col]/4.0;

TAREAS PROGRAMACION BORLAND DELPHI

1.- Construir un concentrado que despliegue los costos fijos de tres diversos productos
que se fabrican en cuatro sucursales de una empresa MAQUILADORA.
2.- Construir un concentrado que contenga los ingresos por ventas mensuales de los 4
primeros meses del ao de tres sucursales de una cadena refaccionara, agregar listas de
ingresos totales por mes e ingresos promedios por sucursal.
3.- Construir un cuadro que contenga las calificaciones de 5 materias de cuatro alumnos
cualesquiera, incluir promedios de calificaciones por materia y por alumno.

IV UNIDAD INT A LAS BASES DE DATOS


1.- INTRODUCCION DELPHI

En este capitulo se analizan en general dos problemas:


Variables que permitan almacenar conjuntos de datos como los arreglos pero de
distintos tipos de datos, este primer problema se resolva en la antigedad usando las
llamadas variables registro, o tipo struct en C.
Permanencia de los datos, hasta ahora todos los datos capturados, calculados, creados,
etc. al terminar o cerrarse el programa se pierden y es necesario volver a capturarlos,
etc., en la siguiente ejecucin o corrida del programa.
Tradicionalmente en programacin antigua este segundo problema se resolva usando el
concepto de archivos, que son medios permanentes de almacenamiento de datos en los
dispositivos o perifricos apropiados, generalmente disco, cinta magntica, etc.
2.- MODELOS DE ALMACENAMIENTO DE DATOS DELPHI

En general existen dos modelos de almacenamiento de datos en los sistemas de


informacin.
El modelo tradicional de archivos que se construye con los siguientes elementos:
a.1) Variables Registros, como ya se indico son variables que permiten almacenar
conjuntos de datos de diverso tipo.
Tambin se pueden definir como representaciones simblicas y programaticas de
entidades lgicas de informacin, ejemplos de variables registros son alumnos,
empleados, clientes, proveedores, productos, autos, etc.
Esta variables registros, tambin ocupan programas o rutinas de programas para
procesarlas, por ejemplo un procedimiento, modulo o subrutina, se encargara de
capturar los datos que contendr la variable registro, otro procedimiento para corregir

los datos que ya contiene, otro procedimiento para desplegarlos en pantalla ya cuando
ha sido capturada y as sucesivamente.
a.2) Archivos, que en principio pueden entenderse como una especie de almacenes o
bodegas para almacenamiento de datos en forma permanente en disco, es decir un
archivo de empleados en disco contiene todos los datos de todos los empleados de una
empresa.
Igualmente los archivos ocupan su propios programas o subrutinas o procedimientos
especializados por ejemplo, procedimientos para crear los archivos, para almacenar o
dar de altas los registros en el archivo, procedimientos para buscar un registro
determinado, procedimiento para dar de baja un registro, etc.
a.3) Una aplicacin, que es un programa que se encarga de coordinar todos los
programas descritos y presentrselos a los usuarios de manera clara, fcil y accesible y
entendible.
Salta a la vista que construir un sistema de informacin por ejemplo para una tienda de
vdeo o para un refaccionara, etc. involucra un gran cantidad de trabajo de
programacin, puesto que hay que programar muchas variables registros, muchos
archivos en disco, y una o varias aplicaciones.
Este modelo se usa todava en la actualidad, pero es obvio que mejores maneras, mas
rpidas, seguras y eficientes existen en la actualidad para resolver estos problemas, y
esto nos lleva al segundo modelo de datos.
[[|Modelo de Bases de Datos Relacinales, este modelo intenta simplificar la
construccin de sistemas de informacin como los antes descritos, este modelo solo
incluye en forma simple los siguientes elementos:]]
Tablas es una combinacin de las variables registro y de los archivos del modelo
anterior.
Es decir cuando un programador moderno define o declara una tabla en un programa,
realmente esta haciendo dos cosas por el precio de una, es decir crea una variable
registro en memoria que almacenara los datos y al mismo tiempo ya esta creando un
archivo en disco que se llamara igual que la tabla o variable registro y que
automticamente se convertir en un espejo de la tabla en memoria, es decir cuando se
cargan los datos en la tabla en memoria, tambin se estarn cargando ala vez en disco.
Otra vez cuando el programador escribe cdigo para capturar los datos y mandarlos a la
tabla en pantalla-memoria, realmente tambin lo esta haciendo para darlos de alta en
disco.
Aplicacin, que tiene la misma funcin que en el modelo anterior.
No confundir este concepto de tablas en base de datos con el concepto de tablas, vistos
en el capitulo de arreglos, aunque en la practica se parecen mucho la diferencia es que
los datos no se van a disco.

Como se observa en este modelo, es mas sencillo construir sistemas de informacin con
el, puesto que la parte programatica se reduce ampliamente.
3.- TABLAS DELPHI

Una Tabla simple, representa una unidad de informacin de una entidad lgica de
informacin:

Tabla Empleado:

Clave Empleado

Nombre Empleado

Direccin Empleado

Edad Empleado

Telfono Empleado

etc. Empleado

Tabla Proveedor:

Clave Proveedor

Nombre Proveedor

Empresa Proveedor

Telfono Proveedor

Fax Proveedor

Celular Proveedor

etc. Proveedor

Tabla Autos:

Numero de Serie

Modelo

Marca

Tipo

Color

Capacidad

etc.

Observar que cada tabla, empieza con una clave generalmente de tipo numrica.
Todos los elementos de la tabla, solo hacen referencia hacia el mismo ente o sujeto de
informacin.
Cada elemento solo representa o debe contener un solo dato de informacin.
No se respetan o siguen al pie de la letra estos tres postulados y empiezan los
problemas al tiempo de programacin.
Existe una segunda forma o manera de representar las tablas, ejemplo:

Tabla: Camisas
NumCamisa Marca Estilo Medida Color Material
1 Jeans Manga Corta Grande Azul Algodn
2 Volis Camiseta Mediana Negra Poliester
3 Genrica Manga Larga Chica Morado Rayn
etc. etc. etc. etc. etc. etc.

Tabla: Clientes
NumCliente NomCliente DirCliente TelCliente
1 Juan Prez Av. aba 121212

2 Luis Prez calle zeta 898989


3 Jos Prez cjon sss 000000
etc. etc. etc. etc.

Recordar siempre, una tabla almacena o representa un conjunto de datos relacionados


entre si, la tabla de alumnos es para almacenar y manipular muchos alumnos, la tabla de
productos es para almacenar y manipular muchos alumnos, en resumen si en un
problema de informacin solo se presenta una instancia o rengln de una entidad lgica,
entonces no es tabla, es un encabezado.
TAREAS PROGRAMACION BORLAND DELPHI
1.- CONSTRUIR EN CUADERNO LAS SIGUIENTES TABLAS, LA MITAD DE
ELLAS CON EL PRIMER FORMATO Y LA SEGUNDA MITAD CON EL
SEGUNDO FORMATO.
1.- PACIENTES
2.- PERROS
3.- PLUMAS
4.- MERCANCIAS
5.- PELICULAS
6.- MEDICINAS
7.- MAESTROS
8.- MATERIAS
9.- COMPUTADORAS
10.- BANCOS

4.- TABLAS (CONTINUACION)

El trabajo correcto con bases de datos relacinales, se divide en dos grandes pasos o
etapas bien diferenciadas entre si:

En la primera etapa se disea la tabla , con sus campos, llaves y condiciones especiales,
luego se usa un paquete o programa de software especializado en la construccin,
mantenimiento y administracin de la base de datos, este software se usa para convertir
la tabla o tablas ya bien diseadas en un archivo en disco.
Estos paquetes, o software reciben el nombre de DBMS(DATA BASE
MANAGEMENT SYSTEM) o sistema administrador de bases de datos.
Este software se especializa en la creacin, mantenimiento, seguridad, privacidad, etc.
de un conjunto de tablas o mejor dicho una base de datos, los DBMS mas comunes son
Oracle, SqlServer, Informix, Sysbase, etc.
Borland la compaa que fabrica C++Builder, proporciona junto con el BORLAND
DELPHI , un mini DBMS llamado DataBase Desktop, mismo que se encuentra en el
mismo folder o subdirectorio que el BORLAND DELPHI, y que tambin se usara para
construir las tablas y/o archivos fsicos.
La segunda etapa consiste en construir la aplicacin o aplicaciones que ya tendrn
acceso o podrn manipular los datos contenidos en la tabla, estas aplicaciones se
escriben usando ya sea lenguajes clsicos de programacin como BASIC, PASCAL,
COBOL, CBUILDER, DELPHI, etc., o tambin se pueden accesar paquetes comunes
de manipulacin de archivos o bases de datos como DBASE, CLIPPER, VISUALFOX,
ACCESS, etc.
DISEO Y CREACION DE UNA TABLA
El primer paso antes de usar el paquete correspondiente a esta tarea, es disear la tabla
completamente, esto exige:
1. Nombre apropiado y determinacin de atributos y campos correspondientes
2. Seleccionar y determinar el atributo principal o campo clave o llave primaria que
se utiliza como el identificador nico que permite diferenciar cada instancia o
rengln diferente dentro de la tabla.
3. Tambin se puede seleccionar otros campos que puedan servir mas adelante para
ordenar de manera diferente la tabla, es decir una tabla en principio ya est
ordenada por el campo clave, por ejemplo, la matricula de un alumno, el numero
de empleado, etc., pero existirn muchas ocasiones mas adelante donde se puede
pedir un orden diferente, por ejemplo, por ciudad, por carrera, por nombre, por
edad, etc., la buena ingeniera de una base de datos exige tomar en cuenta estos y
otros muchos problemas y detalles.
A estos atributos o campos especiales se les conoce como claves o llaves secundarias,
que internamente generan otra tabla especial llamada tabla o archivo de ndices, (tabla o
archivo que contiene dos campos,
el primero es la clave secundaria ordenada y el segundo la posicin o rengln donde se
encuentra en la tabla original).

1. Escribir restricciones y condiciones apropiadas para ciertos atributos , por


ejemplo el nmero de empleado deben comenzar en 500, la edad no debe ser
mayor de 150 aos, etc.
Ya listo el diseo de la tabla, se pasa a el programa correspondiente para su creacin y
almacenamiento, dicho programa que se encuentra dentro de el folder o subdirectorio de
BORLAND DELPHI y como ya se dijo es:
5.- DATABASE DESKTOP DELPHI

No es un componente de la barra de herramientas, es el icono de un programa que se


encuentra en el mismo folder o directorio que el C++Builder.
El procedimiento completo para construir la tabla, es:
Primero crear un folder o subdirectorio especial en el disco duro C:, para guardar o
almacenar las tablas o base de datos (conjunto de tablas), esto se hace con un click en
My Computer, luego click en disco C;, luego File, New Folder, y renombrarlo por
ejemplo a Datos1, o Tablas o Base de Datos (Win95 permite directorios con espacios en
blanco intermedios).
a) Ahora cargar o ejecutar el DESKTOP DATABASE ( SE ENCUENTRA EN
PROGRAM FILES\BORLAND\DATABASE\DESKTOP)
La pantalla de entrada es:
b) Crear una nueva con file, new, table, DD pregunta cual formato de tabla se va a usar;
c) El formato a seleccionar es Paradox 7,(Borland es la compaa propietaria de los
arriba mencionados, otras versiones de BORLAND DELPHI ya traen licencias para
nuevos tipos, como Access, etc.), ya hecha la seleccin entramos a el siguiente editor de
tablas:
Tomar nota de las dos reas del editor, la primera de ellas es el field roster y la segunda
rea es la de propiedades de la tabla.
d) Se usa ahora la primera rea, para escribir los campos o atributos de la tabla, la
segunda columna es el tipo de dato del atributo, para asignar un tipo de dato a un
atributo, pulsar dos veces la barra espaciadora en el teclado para que salga la siguiente
lista de tipos de datos:

Como se observa existen muchos e interesantes tipos de datos, de momento solo usar
los mas comunes, enteros, short, numricos, y alpha para el caso de strings.

La opcin size(tamao) solo se usa cuando el campo es de tipo string ( ALPHA) y se


tiene que dar el tamao de la string, por ejemplo en campo Direccin el size o tamao es
30.
La opcin Key, es para marcar un atributo o campo, como llave primaria, o llave
principal de las instancias o renglones u objetos diferentes de la tabla, para marcar un
campo como llave primaria, solo dobleclick en esta opcin Key.
e) La segunda rea de la tabla, son las propiedades de la tabla, todas las propiedades de
la tabla estn dentro del siguiente combobox.
Todas y cada una de las propiedades, se definen abajo en la parte de propiedades del
editor de tablas, es decir la propiedad validity check tiene como elementos:
[] campo requerido
[] valor mnimo
[] valor mximo
[] valor de default
[] picture(mascarilla de edicin)
La propiedad siguiente tiene sus propios elementos y as sucesivamente.
De momento solamente dejar las propiedades o sus partes en blanco.
f) No olvidar usar la opcin SAVE abajo para guardar la tabla, en esta parte sale la
ventana normal de Windows para grabacin, esa ventana donde se puede crear un nuevo
folder, etc., solo buscar el directorio que se creo al principio de la sesin con my
computer, abrirlo(OPEN) y escribir un nombre apropiado para la tabla por ejemplo
(MITABLA).
Ya creada la tabla, es conveniente cargarle unos cuantos renglones registros o datos para
pruebas, esto se hace con:
c.1) Usar el icono de OPEN tabla

y seleccionar la tabla a cargar.

c.2) Entrar al modo de edicin usando la opcion TABLE EDIT TABLE o TECLA F9 o
icono EDIT
(para que se vea este icono maximizar DATABASE DESKTOP) y

ya se puede empezar a capturar los datos en cada rengln.


c.3) Para terminar solo click en la X arriba en la tabla respectiva.

Ejemplo de una tabla;


Recordar que como la clave es de tipo AUTOINCREMENT en mi ejemplo, no se ocupa
capturarla, solo capturar el resto del renglon y cambiarse de renglon, para que database
desktop la cargue.
Recordar que todos los cambios hechos a una, aadir, insertar, eliminar, modificar, etc
quedan grabados automticamente en disco, este hecho es la razn por lo que no existe
una opcin de grabar un rengln o registro cualesquiera.
Ahora si, ya creada, declarada o definida la tabla, es tiempo ahora de construir la
aplicacin, para esto se usara nuevamente el BORLAND DELPHI
6.- APLICACIONES O PROGRAMAS CON TABLAS DELPHI

Bsicamente una aplicacin consiste de un programa o forma que permite accesar,


manipular, editar, procesar, etctera, los datos, registros, o renglones de una tabla, es
decir es la aplicacin la que constituye, la vista sobre la que trabaja el usuario del
programa.
Como ya se explico en el modelo tradicional de almacenamiento de datos, existan
muchos procesos, tanto para la manipulacin de registros en memoria, capturas,
modificaciones, etc., como para el almacenamiento de todos ellos en archivos en disco,
el famoso ABC de un sistema de archivos (altas, bajas, consultas, modificaciones, etc.)
y todos ellos haba que construirlos programarlos a mano, era terrible la situacin de los
programadores de antao.
En el modelo relacional visual de datos, mucho de este trabajo no existe, solo se
construye una forma, y se pegan unos cuantos componentes para que aparezcan las
propias tablas y componentes para que se procesen los datos que contendrn la tablas.
Recordar tambin que la aplicacin ya no deber preocuparse, donde se almacenan los
datos, de validar las condiciones y restricciones impuestas en ellos, etc., todo este
trabajo ahora es responsabilidad del miniDBMS que usado, el DataBase Desktop.
En Borland Delphi existen dos maneras sencillas de construir aplicaciones, la
primera de ellas es presentarle al usuario un solo rengln de informacin para su
proceso y manipulacin y la segunda es presentarle toda la tabla a la vez, tambin
para su manipulacin y proceso.
7.- APLICACIONES POR RENGLON DELPHI

Para construir una aplicacin, presentndole un solo rengln al usuario para su


procesamiento en Borland Delphi solo se ocupa una forma (Form1) y cuatro
componentes diferentes de acceso y manipulacin de tablas, estos cuatro componentes
son:

PROCEDIMIENTO Y COMPONENTES
1.- Colocar un componente Table (Data Access )

en algn lugar de la forma

donde no estorbe( este componente quedara flotando y no aparece al momento de


ejecucin del programa).
Este componente Table, sirve de enlace fsico entre la tabla real que se creo con el
DataBase Desktop y el resto de los componentes que se usaran para la construccin de
la aplicacin.
Sus tres propiedades mas importantes son:

Propiedad DataBaseName = Solo escribir el directorio donde se encuentra la


tabla real, por ejemplo c:\datos

Propiedad TableName = Solo click a un lado de esta propiedad y seleccionar la


tabla a usar, por ejemplo seleccionar la tabla de clientes.

Propiedad Active = Ponerlo en valor True.

2.- Colocar un componente DataSource (Data Access)

tambin en algn lugar

en la forma donde no estorbe.


Este Componente acta como el enlace fsico entre el Componente Table y el resto de
componentes que procesan los datos de la tabla, es decir el componente Table apunta a
la tabla real en disco, el componente DataSource apunta al componente Table, y el resto
de los componentes apuntan a DataSource.
Su nica propiedad a modificar es:
Propiedad DataSet = Click a un lado y seleccionar el componente Table al que se quiere
enlazar, por ejemplo Table1.
3.- Componente DBEdit (Data Controls)

Este componente permite presentar y manipular un dato de la tabla a la vez.


Es un componente muy similar al componente Edit y comparte muchas de las
propiedades y mtodos de este ultimo, su diferencia principal es que Edit, carga sus
datos desde el usuario y DBEdit los carga desde la tabla almacenada en disco.

De este componente se deben colocar tantos de ellos en la forma, como columnas


existan en la tabla a procesar.
Sus dos propiedades mas importantes y en el orden abajo descrito son:
Propiedad DataSource = Click a un lado y seleccionar el DataSource al que se quiere
enlazar, por ejemplo DataSource1.
Propiedad DataField = Click a un lado y seleccionar el campo o atributo o columna que
se quiere representar o enlazar por ejemplo ClaveCliente, NomCliente, etc.
Recordar que se deben colocar tantos DBEdit en la forma, como columnas existan en la
tabla, o como columnas se quieran presentar al usuario para su manipulacin.
Recordar poner unos cuantos componentes Label, arriba del componente DBEdit y
cargarlos en su propiedad caption con el nombre del campo o columna respectivo.
4.- Componente DBNavigator (Data Controls)

Este componente contiene todos los procesos mas usuales para la manipulacin
y procesamiento de los datos en renglones de la tabla.

Su aspecto fsico en pantalla es:

como se observa, es una pequea barra de botones, donde cada uno de ellos,
representa y ejecuta un proceso con todo un rengln de la tabla, dichos procesos
son:

Button Significado

First Regreso al primer registro o rengln de la tabla.


Prior Regreso a registro o rengln anterior.
Next Avanza al siguiente rengln.
Last Avanza a el ultimo rengln.
Insert Inserta un nuevo rengln en la tabla.
Delete Borra o elimina el rengln o registro actual.

Edit Pone el registro actual en estado de edicin para su modificacin


Post Graba el registro o rengln actual en la tabla en disco.
Cancel Cancela modo edicin y restaura los datos anteriores que tenia el rengln.
Refresh Refresca o regraba toda la informacin.

Recordar poner unos cuantos componentes Label arriba de los botones del navegador
para su aclaracin, uso y manejo al usuario.
Sus dos propiedades mas importantes son:
Propiedad DataSource = Click a un lado y seleccionar el DataSource al que se quiere
enlazar, por ejemplo DataSource1.
Propiedad +VisibleButtons = Click en el signo +, para activar(True) o desactivar(False)
los botones de proceso de renglones de la tabla, que se quieran mostrar u ocultar al
usuario.
Con estos cuatro componentes ya se construye una aplicacin, ejemplo;
Pantalla de Diseo:
Pantalla de ejecucin:
TAREAS PROGRAMACION BORLAND DELPHI
1.- Construir aplicaciones para la mitad de las tablas hechas en el DataBase
Desktop.
8.- APLICACION POR TABLA DELPHI
En este tipo de aplicacin, al usuario se le presenta toda la tabla completa a la vez para
su procesamiento y manipulacin.
Para construir esta tipo de aplicacin, solo se ocupan tres componentes y dos de ellos ya
son conocidos, estos componentes son:
Componente Table ( Data Access)

propiedad DataBaseName = c:\datos

propiedad TableName = Clientes.db

propiedad Active = True

Componente DataSource ( Data Access)

propiedad Dataset = Table1

Componente DBGrid ( Data Controls)

Este componente le presenta todos los renglones a la vez al usuario para su


procesamiento, en un formato muy similar al visto en el componente StringGrid.
Su propiedad mas comn es:

DataSource = Click a un lado de la propiedad, para seleccionar el DataSource


respectivo a enlazar, por ejemplo DataSource1.

Una caracterstica interesante, es que este componente DBGrid, trae asociado un editor
de columnas, solo poner el componente DBGrid en la forma, enlazarlo al DataSource y
luego doble click dentro del DBGrid y aparece el siguiente editor:
Primero usar el botn Add All Fields para cargar todos los campos columnas a la
primera ventana y de esta ventana ir seleccionando el campo o columna a procesar,
observar que se pueden agregar nuevas columnas, o eliminar columnas existentes y para
cada columna que se vaya seleccionando ya funciona la segunda parte del editor.
Componente DBNavigator( Data Access)

propiedad DataSource = DataSource1

propiedad +VisibleButtons = activar o desactivar los botones apropiados

Aunque este componente no se ocupa en este tipo de aplicacin, puesto que el usuario
puede realizar todos los procesos bsicos directamente dentro de la tabla, es conveniente
poner un navegador para darle una segunda opcin o manera de realizar los procesos
bsicos.
Un ejemplo de aplicacin con esta estructura es:
Pantalla de Diseo
Pantalla de ejecucin:
TAREAS PROGRAMACION BORLAND DELPHI
1.- CONSTRUIR APLICACIONES CON ESTE FORMATO PARA LA SEGUNDA
MITAD DE LAS TABLAS CREADAS CON EL DATABASE DESKTOP.
9.- PROCESOS BASICOS DELPHI

Analizaremos ahora algunos procesos tambin bsicos que pueden realizarse con los
dos tipos de aplicaciones y que adems no estn contemplados en algunos de los
botones del navegador.
OPERACIONES CON CAMPOS
Para el caso de aplicaciones construidas con componentes DBEdit, recordar que
comparte muchas propiedades y mtodos con el componente edit, as que es valido por
ejemplo en una aplicacin donde la tabla tiene el campo edad en DBEdit3) poner un
componente edit1 para desplegarlos en meses y realizar la siguiente operacin en el
onclick de un botn apropiado como lo muestra el siguiente programa ejemplo
procedure TForm1.Button1Click(Sender: TObject);
var
meses:integer;
begin
meses := StrToInt(DBEdit3.Text) * 12;
Edit1.Text := IntToStr(meses);
end;

corrida:

Como se observa se puede accesar y manipular los componentes DBEdit usando la


propiedad Text, tanto para leerlos como para cargarlos.
TAREAS PROGRAMAS BORLAND DELPHI :
1.- Una tabla de productos con campos costounitario, margen de utilidad y tasa de iva,
calcular el precio de venta.
a.2) Para el caso de aplicaciones con DBGrid, se pueden accesar sus celdas para su
lectura y proceso usando cdigo como en el siguiente ejemplo, en algn botn o evento
apropiado:
procedure TForm1.Button1Click(Sender: TObject);
var
temp:integer;
begin

temp:= DBGrid1.Fields[2].AsInteger * 5;
Edit1.Text:=IntToStr(temp);
end;

Observar la propiedad Fields[col], es para indicar la columna deseada y adems


comienza en la 0(cero), recordar adems que este acceso ser realizado solamente sobre
el rengln seleccionado en la tabla (aquel que esta seleccionado con un *).
Tambin se esta usando el mtodo AsInteger para leerlo como entero.
Es conveniente usar la ayuda del borland delphi para el componente DBGrid para
conocer todas sus propiedades y mtodos.
Para cargar una celda con un nuevo valor, usar cdigo como el siguiente en algn botn
o evento apropiado.
Onclickbutton5(){
DBGrid1.Edit();
DBGrid1.Fields[3].Value = 300;
}
1.- Observar que son dos pasos en el primero se pone todo el DBGrid en modo de
edicin y en el segundo se carga ya la celda seleccionada con el nuevo valor.
2.- Recordar que el cambio es en una celda de un solo rengln y es el rengln
seleccionado.
3.- Como primera nota interesante, esta propiedad Edit() es tambin la del navegador, es
decir es valido DBGrid1.First, etc.
4.- Para la modificacin de la celda, se usaron otra vez la propiedad Fields[col] y
mtodo Vale recordar nuevamente estudiar propiedades y mtodos de DBGrid.
TAREAS PROGRAMACION BORLAND DELPHI
1.- La misma tarea anterior, pero ahora con tabla.
10.- BUSQUEDAS DELPHI

Un problema muy comn en los sistemas de informacin basados en bases de datos es


el de bsquedas en estos casos el usuario proporciona un dato, generalmente la clave del
registro, para que se localice toda la informacin pertinente.

Para resolver este problema, solo se ocupa:


a) Una aplicacin construida por rengln, es decir con DBEdit para desplegar el
resultado.
b) Un Edit para almacenar el dato o valor a buscar por parte del usuario.
c) Haber estudiado la ayuda del borland delphi para las propiedades y mtodos del
componente Table.
- Un botn de ordenes (OK) con el siguiente cdigo:
procedure TForm1.Button1Click(Sender: TObject);
var
temp:integer;
opcion:TLocateOptions;
begin
Table1.Locate('NOMBRE',Edit1.Text,[]);
end;

corrida:
Los parmetros del mtodo Locate(), son;
Locate(Columna de bsqueda ,Dato a buscar , [loCaseInsensitive, loPartialKey]);
cuando opcin = loCaseInsensitive ignora diferencia entre maysculas y minsculas
cuando opcin = loPartialKey resultado parcial, ejemplo si se busca ju se
posesiona en el primer rengln donde ese campo empiece con ju, ejemplo Juan,
juvenal, etc.
TAREAS PROGRAMACION BORLAND DELPHI
1.- CONSTRUIR UNA APLICACION DE BUSQUEDAS PARA UNA TABLA DE
AUTOS, CON OPCIONES DE BUSQUEDA POR CLAVE, MODELO, COLOR,
PRECIO.
11.- FILTROS DELPHI

Un filtro es una condicin que permite desplegar solo determinada informacin de una
tabla.

Es decir, en ocasiones solo se quiere desplegar informacin condicionada al usuario, por


ejemplo de la tabla de clientes solo desplegar aquellos que sean de la ciudad de Tijuana,
de la tabla de autos, solo desplegar aquellos de modelo 1990 en adelante.
Como se observa, filtrar una tabla, es condicionar uno o mas campos o columnas.
Filtros o condiciones se tendrn que programar tomando en cuenta a como Pascal
maneja las constantes strings, los operadores relacinales y los operadores lgicos.__
a) Datos o constantes strings en PASCAL, van encerrados entre apstrofes( comillas
sencillas), ejemplo 'Juan', 'Tijuana', etc.
b) Los operadores relacinales son ( =, >, <, >=, , <> ).
c) Los operadores lgicos son ( and, or, not ).
Existen dos maneras de poner filtros o condiciones para una tabla, ellas son:
1.- Interna, debe haber un DBGrid en la aplicacin y para el componente Table,
modificar las siguientes propiedades:

propiedad Filter = condicin, ejemplos para la tabla de clientes:

= ClaveCliente < 3
= Ciudad <> 'Tijuana'
= ClaveCliente > 2 and Ciudad = 'Tijuana'

propiedad Filtered = true

2,- Externa, es el usuario quien construye el filtro o condicin, usando un componente


Edit para el filtro y un botn de ordenes (OK) para que se ejecute y despliegue la tabla
filtrada, el cdigo en dicho botn es;
onclickbutton1()
{
Table1.Filter = Edit1.Text;
Table1.Filtered = true;
}
TAREAS PROGRAMACION BORLAND DELPHI
1.- UNA TABLA DE AUTOS FILTRADA INTERNAMENTE POR COLOR AZUL Y
MODELO DE 1990 EN ADELANTE.

2.- UNA TABLA DE PROVEEDORES Y QUE SEA EL USUARIO QUIEN


CONSTRUYA EL FILTRO O CONDICION.
TEMA 12.- GRAFICOS O IMAGENES DBIMAGE DELPHI

Campos de grficos o de imgenes, se han convertido en una de las grandes atracciones


y caractersticas de las bases de datos modernas.
En borland delphi el manejo de dichos campos es muy fcil solo:
1.- Cuando se crea la tabla en el DataBase Desktop, incluir un campo de tipo de dato
Graphics, por ejemplo en la tabla de clientes, incluir el campo foto de tipo Graphics.
2.- En aplicaciones por renglones no usar un DBEdit para este campo, sino usar un
componente DBImage (Data Controls)
.

Si el rengln o registro ya esta cargado con su imagen respectiva, al hacer la navegacin


entre renglones este componente DBImage las va desplegando.
3.- En aplicaciones por tablas, usar el editor del DBGrid para ocultar el campo de tipo
Graphics y poner a un lado del DBGrid un componente DBImage, esto hace la misma
funcin, es decir al momento que el usuario navega entre los renglones de la tabla, este
componente va desplegando la imagen del rengln donde se encuentra el cursor.
4.- El problema, es como cargar las imgenes, la respuesta es sencilla, las imgenes solo
pueden cargarse, capturarse o provenir de solo dos fuentes o lugares distintos:
4.1) Un archivo de tipo *.jpg( u otros formatos similares)
4.2) Del Clipboard de Windows
5.- Cualquier dispositivo o perifrico de este tipo (scaners, cmaras digitales, etc.) o
programas de imgenes ( paintbrush, paint, corel, etc.) tienen estas dos capacidades, es
decir pueden mandar sus imgenes ya sea al Clipboard o ya sea a un archivo en disco.
6.- Para capturar una imagen en una aplicacin ya sea por rengln o por tabla, recordar
no usar un campo DBEdit para este campo sino un campo DBImage, para usar el
Clipboard para capturar se tienen dos maneras sencillas:
6.1- Colocado el cursor dentro de este campo DBImage, pedirle al usuario, usando un
Label por ejemplo que solo teclee, CTRL V, ( observar el paste en el edit de cualquier
ventana de Windows).
6.2.- Usar adems del componente DBImage un componente Button de ordenes(OK)
con el siguiente cdigo:

onclickbutton1()
{ DBImage1.PasteFromClipboard(); }
Recordar que para usar estos mtodos, el Clipboard de Windows ya debe estar cargado
con la imagen, para pruebas sencillas, minimizar la aplicacin, cargar el PaintBrush o
Paint, cargar un archivo grafico por ejemplo un BMP, seleccionarlo luego Edit Copy,
cerrar el Paint o PaintBrush y maximizar la aplicacin y aplicar cualquiera de los dos
mtodos.
Es evidente que tambin se pueden usar CTRL C, CTRL X, CTRL Del(ver edit de
cualquier ventana), CopyToClipboard() (ver ayuda de DBImage), etc., para diferentes
procesos.
Recordar adems que la tabla fsica no actualiza el campo correspondiente con su
imagen, si no se avanza de rengln, o se usan los botones Next, Refresh, Update del
navegador.
7.- Para cargar o capturar una imagen directamente desde un archivo en disco de
extensin .BMP (u otros similares) solo usar un componente DBImage ya sea en
aplicaciones por rengln o por tabla, un componente Button de ordenes y el siguiente
cdigo;
OnClickButton1()
{ DBImage1.Picture.LoadFromFile('C:\datos\mifoto.jpg'); }
Ya debe estar en el directorio o folder datos dicho archivo grafico y adems otra vez
recordar, que aunque la imagen ya esta en la pantalla, todava no se manda a la tabla a
disco si no se ejecuta un avance de rengln o un Next, etc.
8.- La propiedad Stretch en DBImage, la amplia, otro mtodo es ponerlas en Clipboard
o archivo ya con el tamao apropiado.
TAREAS PROGRAMACION BORLAND DELPHI
1.- UNA TABLA DE MAMIFEROS COMPLETA INCLUYENDO IMAGENES
2.- UNA TABLA DE PRODUCTOS O MERCANCIAS INCLUYENDO SU FOTO
13.- QREPORT BORLAND DELPHI

Imprimir tablas o construir reportes sobre las mismas, es tambin una tarea comn en
los sistemas de informacin basados en bases de datos.
Lo bueno es que se tiene un folder o pestaa llamada QReport cargada de componentes
visuales especializados en la impresin de reportes, esta librera de componentes, no es
hecha por Borland, es hecha por una compaa llamada QSOFT

QReport
Practica para construir un reporte que contiene la cdula de un y solamente un cliente
de la tabla de clientes.
Los componentes y propiedades a usar son:
1.- Table1

DataBaseName = c:\datos

TableName = Clientes.db

Active = true

Filter = ClaveCliente = 2 (observar que aqu es donde se determina cual cliente


se imprime)

Filtered = true

2.- QuickRep1, se encuentra en pestaa QReport.


Es el componente principal para impresin.
Toma la forma y tamao de una hoja de impresora dentro de Form1.
Sus propiedades a usar son:

Dataset = Table1

Zoom = 50

3.- QRShape1
Se usara para crear un rectngulo para encabezados de la cdula de un cliente.
Son varios tipos o formas las que existen de QRShape, rectngulos, lneas, crculos, etc.,
rectngulo es default, y la propiedad para cambiar de forma es Shape.
Acomodarlo y expanderlo en la parte superior de la hoja de impresin (QickRep1).
Sus propiedades a usar son:
- +Pen = Click en signo + y poner:
Color = clgreen
Width = 5

4.- QRLabel1
Similar a label, contienen textos o mensajes estticos.
Colocarlo dentro del rectngulo o seccin de encabezado.
Propiedades:
Caption = CIA ACME
+Font = dar color y tamao de font
5.- QRSysData1
Componente especiales que contienen datos fijos de impresin, tales como numero de
pagina, fecha, hora, etc.
Colocarlo tambin dentro de la seccin o banda de encabezado.
propiedades:
Data = click a un lado y seleccionar qrsdate
6.- QRSysData2
Otro del anterior, colocarlo dentro de la banda de encabezado, propiedad
Data = click a un lado y seleccionar qrsPageNumber
7.- QRShape2
Con este se forma ahora un seccin, rectngulo o banda principal.
Cuando un reporte, imprime mas de un rengln, por ejemplo todos los clientes, esta
parte de la hoja recibe el nombre de banda de detalle.
Propiedades:
- +Pen = darle color y tamao(Width) apropiados.
8.- QRLabel###
Colocar varios dentro de la banda de detalle, con caption apropiado, ejemplo, clave,
nombre, foto, etc.
9.- QRDBText1
Componente para desplegar cada dato de una celda o campo o columna de una tabla, es
similar a DBEdit pero es esttico, es decir solo despliega.

Se debern poner tantos componentes QRDBText en esta banda o seccin de detalle,


como columnas de datos existan o se quieran desplegar de la tabla.
Propiedades:

Dataset = Table1

DataField = seleccionar columna apropiada

Font = color, tamao, etc. que se quieran

10 .-QRDBImage
Componente para desplegar e imprimir campos de tipo Graphics ( BMP, ICO, WFW).
Propiedades:

Dataset = Table1

DataField = Seleccionar una columna de tipo Graphics

Stretch = true

Notas:
1.- El componente QuickRep, tiene la propiedad +Frame, para que tambin pueda
desplegar e imprimir un marco apropiado.
2.- Para ir desplegando un Preview de impresin al tiempo del diseo del reporte, solo
dobleclick dentro de la hoja de impresin (QuickRep) para que aparezca una ventana de
Preview de impresin.
3.- Para Preview o impresin en tiempo de ejecucin, solo aadir un botn de ordenes
OK, y usar solo una de las siguientes instrucciones:
OnClickButton1() {
QuickRep1.Preview();
o QuickRep1.Print();
solo una de las dos } ejemplo: a)Pantalla de diseo

Button1Click(TObject *Sender)
QuickRep1.Preview();

b)Programa: <code>

</code> c)Pantalla de corrida:

d)Pantalla de Preview durante ejecucin:

bueno parte de ella. TAREAS

PROGRAMACION BORLAND DELPHI 1.- REPORTE CON UN AUTO DE LA


TABLA DE AUTOS 2.- REPORTE DE UN PROVEEDOR, DE LA TABLA DE
PROVEEDORES, PERO EL USUARIO SELECCIONA EL FILTRO O LA CLAVE DEL
PROVEEDOR ( CONSTRUIR DOS PANTALLAS, UNA CON EL FILTRO Y BOTON DE
IMPRESION O PREVIEW Y LA SEGUNDA CON EL REPORTE).
14.- REPORTES DELPHI

Imprimir toda la tabla significa muchas hojas de impresora.


Primero se deber quitar el filtro en la tabla y segundo entender lo que tienen en comn
todas las hojas de impresora que se ocupan para imprimir la tabla.
Primero todas las hojas ocupan un mismo encabezado o un mismo pie de pagina, donde
puede ir por ejemplo la fecha o el numero de pagina.
La primera hoja de todo el reporte, cuando menos debe llevar una banda de titulo, con el
nombre de la compaa, el titulo y propsito de la tabla, la fecha, etc.
Todo los renglones de la tabla, ocuparan muchas hojas de impresora para desplegarse,
incluyendo un encabezado para todas las columnas que estn en la hoja, repito
necesitamos un encabezado para columnas y que aparezca en todas las paginas.
Probablemente, en la hoja final, seria conveniente aadir algunos contadores y
acumuladores, por ejemplo la cantidad de renglones, algn acumulado de alguna
columna numrica en especial, etc.
QReport, usa este modelo de bandas para la construccin de reportes, es decir, en la
practica anterior se uso un componente QRShape, para dividir el reporte en dos partes,
secciones o bandas, pero QReport trae incorporado un componente llamado QRBand
que permite dividir en partes, secciones o bandas todo el reporte.
Este componente QRBand, en su propiedad BandType, permite construir los siguientes
seis tipos importantes de banda.
BANDA NOTAS

PAGE HEADER Banda de encabezados de paginas.

Aparece en todas las hojas impresas.


Poner dentro componentes para numero de pagina, etc.
TITLE Banda de Titulo o encabezados del Reporte.
Solo aparece en la primera hoja impresa.
Poner componentes qrlabel con el nombre de la compaa, el propsito de la tabla,
fecha, etc.
COLUMM HEADER Banda de o para encabezados de columnas.
Aparece en todas las hojas impresas.
Poner dentro componentes qrlabel con el encabezado que lleva cada columna de la
tabla.
DETAIL Banda de detalle.
Es la mas importante, porque es la que contiene los datos de los renglones de la tabla.
Es la que constituye el grueso de las hojas impresas.
Solo colocar dentro de esta banda los componentes de datos impresos, QRDBText y
QRDBImage
SUMMARY Banda de resumen.
Solo aparece en la hoja final de impresin.
Poner dentro de ella componentes de operaciones como es QRExpr y estudiarlo en la
ayuda, para conocer sus mtodos (funciones) y aplicarlas.
PAGE FOOTER Banda de pie de pagina.
Aparece en todas las hojas impresas.
Su funcin es similar a la banda de encabezado.
De hecho, en un reporte solo se usa la b banda de encabezado o la banda de pie de
pagina, pero no las dos.
Solo poner dentro de esta banda, componentes de numero de pagina, o de fechas, o de
hora, etc.

Lo mas importante a tomar en cuenta es cada componente QRBand que se ponga dentro
de un reporte, se deber definir usando su propiedad BandType, como una cualquiera de
los seis tipos de bandas, es decir,
QRBand1 = banda de encabezado,
QRBand2 = Banda de titulo,
QRBand3 = Banda de detalle, etc.
En general el procedimiento completo es:
1.-Poner un componente Table en la forma y nadamas cargarle sus tres propiedades
bsicas( no usar filtros).
2.-Poner un Componente QuickRep( es la hoja de impresin) y cargarle las propiedades
ya descritas en procedimiento de impresin anterior.
3.- Colocar y expandir un primer componente QRBand dentro del componente
QuickRep y primero asociarle el tipo de banda que representa, por ejemplo de
encabezado o de titulo, recordar que un reporte no necesariamente tiene que llevar las
seis bandas.
A este componente QRBand, cambiarle propiedades de font, frame, color, etc.
4.- Colocar dentro del componente QRBand1, los componentes necesarios y apropiados
como se indico en el cuadro anterior de bandas y significados, por ejemplo QRLabel,
etc.
5.-Colocar otro componente QRBand en la hoja de impresin, expanderlo y definirlo
como banda de titulo o banda de encabezado de columnas, etc.
6.-Repetir los pasos anteriores, hasta completar todas las bandas.
7.- Colocar un botn de ordenes OK, y asociarle el cdigo de Preview o de impresin.

Você também pode gostar