125
DELPHI7 TUTORIAL UNIDAD I PROGRAMACION VISUAL ELEMENTOS BASICOS 1.- INTRODUCCION DELPHI Los nuevos sistemas de información son costosos en tiempos y recursos, la solución moderna de sistemas de información exigen nuevas herramientas y metodologías para resolver rápida, económica y eficiente los problemas de información 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 programación tradicional, modular o estructurada un programa describe una serie de pasos a ser realizados para la solución de un problema, es decir es un algoritmo. En programación orientada a objetos ( OOP ) un programa es considerado como un sistema de objetos interactuando entre sí, ambientes de desarrollo visuales facilitan aun más la construcción de programas y solución de problemas, porque permiten abstraer al ingeniero de software de todo el GUI (interfase gráfica) del problema, que constituye más del 60% del código normal de un programa. Es decir, en programación modular o estructurada un problema sencillo de información es descompuesto en una serie de módulos(llamados procedimientos o funciones) donde cada uno de ellos realiza una tarea específica, por ejemplo uno de ellos captura los datos, otro resuelve operaciones, etc. En OOP todo problema aun aquellos sencillos de información, se consideran y resuelven como módulos de código gigante (clase) que contiene todo el código necesario(variables, procedimientos, funciones, interfaces, etc.) para solucionar el problema.

Delphi7 Tutorial w2010

  • Upload
    rafenny

  • View
    39

  • Download
    1

Embed Size (px)

DESCRIPTION

Delphi7 Tutorial

Citation preview

DELPHI7 TUTORIALUNIDAD 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 Proceso u operacin Variable(s) salida

BASE ALTURA AREA = BASE * ALTURA 2 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 PARA CUALQUIER VALOR DE X. 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 para cualquier valor de x.(caso normal). PROBLEMA 13.- Evaluar la funcin para cuando x vale 4 . (no ocupa entradas). 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 RANGO

char Caracter ASCII

byte 0 a 255

integer -32,768 a 32,767

Real 1E-38 a 1E+38

Boolean TRUE o FALSE

shortint -128 a 127

word 0 a 65535

longint -2147483648 a 214748364

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

+ SUMA

- RESTA

* MULTIPLICACION

/ DIVISION

Div DIVISION ENTERA

Mod 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 evento2. 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 , 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 , 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 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 que se encuentra en la barra de componentes arriba y a la izquierda.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 PROGRAMA1.- 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 instruccionesCuando 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 Significado

= Igual que

> Mayor que

< Menor que

>= Mayor o igual que

Menor o igual que

No es igual o es diferente que

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

AND Y LOGICO

OR O LOGICO

NOT 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

C C C C F F F C F F F F

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

C C C C F C F C C F F F

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 casos posibles, la mitad empiezan con Cierto y la otra mitad empiezan c con falso. 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

C C c C c C C c F c C F f C c C F f F f F C f C c F C f F f F F f C c F F f F f

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 dlares2. conversin de libras a kilogramos3. conversin de kilmetros a millas4. fin de menseleccionar 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 DIRECTAMENTE11.- 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 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 PRINCIPALEN 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);

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 WHILE16.- 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 ARREGLOS1.- 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 LISTAJuan 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