Вы находитесь на странице: 1из 11

ENTRADA Y SALIDA

En esta seccin, se darn a conocer algunos los mecanismos bsicos para interactuar con un sistema.
Como ejemplo de una aplicacin visual, los procesadores de texto presentan al usuario una hoja en
blanco, los sistemas de hojas de clculo interactan mediante libros, hojas y celdas. As mismo dichas
aplicaciones cuentan con formas para que el usuario modifique tipos de fuente, cambie configuraciones,
guarde, asigne nombres a archivos, etc. Toda la informacin que el usuario necesite ingresar al sistema,
lo har a travs de botones, cajas donde ingresar texto, cuadros combinados para seleccionar opciones,
botones radio o cajas de seleccin. A su vez, el sistema proporciona mensajes y emite resultados ya sea
en ventanas de mensajes hechas ex profeso, en etiquetas, en cuadros de impresin, en las etiquetas de
los botones, etc. Las posibilidades de ingreso y emisin de resultados son variadas.
El problema bsicamente se puede resumir de manera simplista en hacer que la aplicacin tome
informacin del usuario, haga un procesamiento de la misma e imprima de manera visible algn
resultado. A los datos que el usuario proporcione, se le llamarn datos de entrada y a la accin que el
programa ejecute para mostrar sus resultados se le dar el nombre de datos de salida. Tradicionalmente
a esto en computacin se le conoce como proceso de entrada/salida (I/O, input/output). El siguiente
diagrama de flujo muestra de manera esquemtica cmo se representan diferentes tcnicas de entrada y
salida:
INICIO

Tarjeta

I/O Genrico

Teclado

Archivo de
datos

Proceso

Impresora

Archivo de

Pantalla

FIN

Fig. 1.- Diagrama de entrada-proceso-salida


Se tiene que tomar con cautela lo que se representa en un diagrama de flujo con respecto a la entrada y
salida de informacin, sobre todo para aplicaciones visuales. En la figura se muestra que la entrada de
datos puede ser a travs de tarjetas perforadas, teclado o archivo en disco, sin embargo esto es un
esquema muy simplificado, ambiguo y no se debe tomar de manera literal. Para ilustrar lo anterior
tmense los siguientes ejemplos:

1)
2)
3)
4)
5)
6)

En la actualidad, ya no existen entradas de tipo tarjeta perforadas, sin embargo el cdigo de


barras se podra considerar como el sucesor de dicho sistema. Mas bien, el smbolo
correspondiente se ha utilizado por tradicin para representar entrada del usuario.
El acceso por teclado puede estar dirigido a una caja de texto, un cuadro combinado, un
botn de radio, etc.
La entrada de datos por archivo puede referirse a archivo de texto ASCII sencillo, ANSI, con
un tipo propio, una celda en una hoja de clculo, una tabla en una base de datos, etc.
Para la salida en pantalla, no se especifica en cul formulario, caja de texto, etiqueta, campo
de impresin, etc., se realizar dicha salida.
Como en el caso de la entrada va archivo, la salida a archivo que se muestra en la figura
tampoco especifica el tipo del referido archivo.
Aunque se puede enviar directamente a una impresora, por tradicin la salida impresa se
podra utiliza para representar la salida del sistema a pantalla a algn objeto en particular.

Representacin Algortmica de Entrada/Salida


Los libros de texto muestran que existen dos smbolos comunes para ingresar datos a un programa y
estos son:
(a)

(b)

Tarjeta

I/O Genrico
Fig. 2.- Entrada de informacin

El uso de uno u otro smbolo depende de las preferencias de los autores de los textos y del nivel
tecnolgico que se maneje en las obras. Sin embargo, en este trabajo se utilizara la figura 2(a) como la
bsica para representar entrada manual del usuario. Cuando la entrada de informacin sea de alguna
manera diferente, se representar de manera acorde. As mismo, se dejar a criterio del programador
especificar de qu objeto se tomar la informacin respectiva.
De manera similar, para la salida de informacin se utilizan generalmente alguna de las siguientes
representaciones:
(a)
Impresora

(b)
I/O Genrico
Fig. 3.- Salida de informacin

La figura 3(a) se ha tomado en muchos libros de texto como la bsica para representar salida de
informacin. As mismo, esta convencin est sujeta a las preferencias del programador o a las
necesidades de la aplicacin a desarrollar.
Tanto para entrada y salida, la implementacin de la entrada/salida se tiene que especificar cuando se
disea el formulario. Finalmente se tiene que recordar que no todas las aplicaciones necesitan de emitir o
leer informacin del usuario. Existirn aplicaciones que no impriman informacin de resultados. As
mismo existirn aplicaciones que no requieran de leer datos del usuario.
Objetos y Entrada/Salida
La interaccin entre el usuario y el sistema se hace a travs del formulario. Sobre este se colocan
diversos objetos que sirven para capturar datos del usuario, imprimir resultados, servir de componentes

explicativos o ejecutar una accin. Existen una gran variedad de componentes en cualquier sistema de
desarrollo. Aunque cualquiera de esos objetos puede servir de elementos tanto de entrada como de
salida, se este trabajo se revisarn los siguientes:
Caja de edicin (Edit). Son elementos en los que el usuario ingresa texto de
manera directa. El valor que se ingrese se guarda en la propiedad Text del
objeto. El tipo del contenido es siempre una cadena de caracteres o texto. Si se
desea que el texto sea interpretado como nmero, se tiene que ejecutar una
rutina de conversin acorde a lo que se necesite.
Cuadro combinado (ComboBox). Este control consta de una caja de edicin, con
una lista de opciones aadidas. Se deja al programador la elaboracin de dicha
lista de opciones. Estas opciones se programan en la propiedad tems del
control. El valor que se ingrese se guarda en la propiedad Text del objeto.
Cuando el usuario selecciona uno de los elementos a elegir, dicho texto se
despliega en el contenido de la caja y se guarda en la propiedad Text. Aunque
se pueden seleccionar algn elemento de la lista, el usuario tiene la posibilidad
de ingresar texto de manera directa. Si se desea que el texto sea interpretado
como nmero, se tiene que ejecutar una rutina de conversin acorde a lo que se
necesite.
Cuadro de lista (ListBox). Un cuadro de lista presenta una lista de posibilidades a
elegir al usuario. Se deja al programador la elaboracin de dicha lista de
opciones. Estas opciones se programan en la propiedad tems del control. Una
vez seleccionado, el control guarda el ndice de la seleccin, comenzando desde
cero, para la primera posibilidad, hasta la n-sima posibilidad que el programador
halla elaborado en dicho control. El valor que se guarda en la propiedad
ItemIndex del objeto y es de tipo entero.
Cuadro de Seleccin (CheckBox) y Botn de Radio (RadioButton). Son aquellos
objetos que el usuario puede seleccionar. Estos objetos pueden estar en uno de
los siguientes estados, mas no en ambos: Seleccionado (verdadero) o no
seleccionado (falso). El estado de dichos objetos se encuentra guardado en la
propiedad Checked.
Grupo de Botones de Radio (RadioGroup). Presenta al usuario la posibilidad de
seleccionar una de entre una lista de varias posibilidades, utilizando botones de
radio. Se deja al programador la elaboracin de dicha lista de posibilidades.
Dicha lista se encuentra guardada en la propiedad Items de este objeto. Una
vez seleccionado, el control guarda el ndice de la seleccin, comenzando desde
cero, para la primera posibilidad, hasta la n-sima posibilidad que el
programador halla elaborado en dicho control. El valor que se guarda en la
propiedad ItemIndex del objeto y es de tipo entero. La propiedad ms
importante de este control es que la seleccin de una opcin es mutuamente
excluyente. En otras palabras, si se selecciona alguna opcin, las dems se
deseleccionan.
Cuadro de Etiqueta (Label). Estrictamente hablando, no es un objeto que el
usuario utilice como entrada, ya que este no puede modificar el contenido de
una etiqueta en un formulario. Sin embargo, se puede utilizar para que el
sistema imprima un mensaje en el formulario. El texto de una etiqueta se
encuentra guardado en la propiedad Caption de la misma. Si se requiere que
se muestre o se lea informacin numrica, dicha informacin tiene que ser
convertida de manera acorde al tipo que se maneje.

Cuadro Memorando (Memo). Estrictamente hablando, un cuadro memorando es


un control multilnea, que se comporta de manera similar a un editor de texto
muy simple. Una aplicacin puede utilizar un control memorando para enviar un
listado de resultados, de manera similar a como se podra enviar a una
impresora los resultados de un proceso. Tambin puede ser utilizado para que el
usuario ingrese informacin que requiera un posterior proceso. El texto de un
cuadro memorando se encuentra guardado en la propiedad Lines del mismo.
La informacin que se despliega en un objeto memorando es siempre de tipo
texto, por lo que si se desea enviar informacin numrica, esta se debe convertir
de manera acorde al tipo que se maneje.
El objeto Botn (Button) puede servir tanto para mostrar mensajes cortos, como
para ejecutar acciones. En un botn, la etiqueta que este muestra se encuentra
contenida dentro de la propiedad Caption. La propiedad Caption de un botn
funciona de manera similar a la de un objeto de tipo etiqueta. Esta propiedad es
de tipo texto, por lo que si se quiere enviar informacin numrica, esta se debe
de convertir de manera acorde. Adems de lo referido anteriormente, el hecho
de realizar un clic doble sobre un botn cuando se est trabajando en la IDE del
sistema produce que se muestre el cdigo fuente de las acciones que ejecutar
cuando la aplicacin se ejecute.

EJEMPLO
Tmese por ejemplo la siguiente aplicacin:
Se pretende crear una aplicacin que lea dos nmeros que el usuario ingresar en sendas cajas de
edicin, sume sus valores y que dicho valor se enve a una etiqueta. Prtase del formulario siguiente:

Fig. 4.- Aplicacin de ejemplo


Nota

Se han agregado mas textos explicativos en el formulario con el fin de hacerlo lo ms


legible posible.

El diagrama de flujo de una aplicacin de este tipo es como en la figura 5:

INICIO

A,B

C= A + B

FIN

Fig. 5.- Lectura, Suma e Impresin de Resultados


El siguiente cdigo sera una posible alternativa para ejecutar el proceso anteriormente explicado en el
diagrama:
procedure TForm1.Button1Click(Sender: TObject);
var
A, B, C: real;
begin
A:= Edit1;
B:= Edit2;
C:= A + B;
Label4 := C;
end;
Cuando se manda a compilacin la aplicacin, se producen los siguientes mensajes de error:
1.
2.
3.
4.

[Error] Unit1.pas(39): Incompatible types: 'Real' and 'TEdit'


[Error] Unit1.pas(40): Incompatible types: 'Real' and 'TEdit'
[Error] Unit1.pas(42): Incompatible types: 'TLabel' and 'Real'
[Fatal Error] Projec1.dpr(5): Could not compile used unit 'Unit1.pas'

En el caso del error 1, la lnea 39 de la unidad Unit1 (la que est asociada con el formulario de trabajo)
maneja tipos incompatibles Real y Caja de Edicin (TEdit). Lo mismo se puede decir con el error 2 en la
lnea 40. El error 3 establece que la lnea 42 de la misma unidad tiene un error de tipos incompatibles al
asignar un valor real a una variable de tipo Etiqueta (TLabel). El error 4 presenta un mensaje diciendo
que la aplicacin no puede seguir compilndose debido a errores en el cdigo.
En el caso de los errores 1 y 2, lo que sucede es que en realidad se est asignando un objeto Caja de
Edicin (Edit1, Edit2) a una variable real. En esencia si se quiere asignar una caja de edicin como valor
para una variable, la variable tendra que ser del mismo tipo, o sea caja de edicin. Sin embargo el valor
que se quiere utilizar para la variable real no est en TODO el objeto caja de edicin, sino en una de sus
propiedades. Cuando se mencion con anterioridad a algunos de los objetos que se pueden utilizar en un
formulario, se estableci que la propiedad que el usuario tiene acceso, para el caso de este objeto de
caja de edicin es la propiedad Text. Para el caso de este ejemplo, se podra suponer que si se substituye
la llamada apropiada a la propiedad Text de una caja de edicin, se podra eliminar este error. En este
caso el cdigo de las lneas con los errores 1 y 2 podra ser de la siguiente manera:

A:= Edit1.Text;
B:= Edit2.Text;
Para el caso del error 3 el problema que el compilador detect fue que no es posible asignarle un valor
real a la variable etiqueta, la cual es de tipo TLabel. Para este caso, si se pretende enviar dicho valor a
la etiqueta 4 (Label4), se tendr que enviar a la propiedad correspondiente. Para ello, el referido valor se
tendr que enviar a la propiedad Caption de la etiqueta. El cdigo correspondiente para resolver el error
3 podra ser el siguiente:
Label4.Text := C;
Una vez hechos estos cambios y cuando se piensa que ya se han resueltos todos los errores, si se
manda a compilar a la aplicacin, se produce los siguientes mensajes de error:
5.
6.
7.
8.

[Error] Unit1.pas(39): Incompatible types: 'Real' and 'TCaption'


[Error] Unit1.pas(40): Incompatible types: 'Real' and 'TCaption'
[Error] Unit1.pas(42): Incompatible types: 'Srtring' and 'Real'
[Fatal Error] Projec1.dpr(5): Could not compile used unit 'Unit1.pas'

Aunque se han llamado a las propiedades que corresponden a cada objeto, ahora el problema es mas
bien de conversin de tipos entre las propiedades y las variables que recibirn los valores. Antes se
estableci que las propiedades Text y Caption de los objetos que se colocan en un formulario son de tipo
texto, o cadena de caracteres. Si se requiere leer o enviar informacin numrica a estas propiedades, se
tendran que hacer las conversiones correspondientes.
Para el caso de los errores 5 y 6 el cdigo que soluciona de manera definitiva tanto el problema de la
lectura de la propiedad correspondiente de la caja de edicin, como la conversin de tipo de texto a real,
ser el siguiente:
A:= strtofloat(Edit1.Text);
B:= strtofloat(Edit2.Text);
Para el caso del error 7, el envo del valor a la propiedad correspondiente, junto con la conversin
adecuada ser el siguiente:
Label4.Text := floattostr(C);
Al mandar a compilacin el programa, ya no se emiten mensajes de error. Ms lo anterior no significa que
no se produzcan errores en otras partes del funcionamiento de la aplicacin.
FUNCIONES DE CONVERSIN
Se ha mencionado que algunos de los controles que se han visto hasta ahora manejan informacin de
tipo texto. Por ejemplo, si un usuario ingresa un texto dentro de una caja de edicin, el texto sigue siendo
texto. Si el usuario ingresa un nmero, el nmero se considerar como texto. Si se requiere que una
variable de la aplicacin, declarada como de alguno de los tipos numricos disponibles, lea su valor de
una caja de texto, esto producir un error. Esto es extensivo para el caso que se quiera enviar
informacin a un control. Si se enva un valor numrico a un control de etiqueta sin antes haberlo
transformado, se producir un error de conversin de tipos.
En el ejemplo anterior, las funciones de conversin strtofloat y floattostr tienen como objetivo el
convertir un valor de texto a real de punto flotante y viceversa. Existen diversas funciones de conversin
para cada tipo de datos posibles. De entre estas funciones de conversin se pueden mencionar las
siguientes:

De texto a algn tipo:


StrToInt
StrToFloat
StrToInt64
StrToBool
StrToBoolDef

Convierte un valor de tipo cadena de caracteres (texto) en un nmero entero


Convierte un valor de texto a real de punto flotante (Real, Flota, Extended, etc.,)
Convierte un valor de tipo cadena de caracteres (texto) en un nmero entero de
64 bits
Convierte un valor de texto a un valor de tipo valor de verdad verdadero/falso
(T/F Boleano)
Lo mismo que la anterior pero con criterios que pueden traducir el valor de
verdad de los tradicionales T/F o si es posible a sus correspondientes
representaciones numricas (0/1).

De algn otro tipo a texto:


IntToStr
FloatToStr
FloatToStrF
FloatToText
FloatToTextFmt
BoolToStr
VarToStr

Convierte un valor entero a texto


Convierte de real de punto flotante a texto
Lo mismo que la anterior, pero estableciendo parmetros como separacin de
comas para millares, redondeo de decimales, nmero de caracteres mximo
para representacin con formato.
Convierte un real de punto flotante en su representacin decimal, utilizando un
formato especificado, precisin y nmero de dgitos.
Lo mismo que la anterior, pero se especifica una cadena de caracteres que se
utilizar como plantilla para representar el resultado
Convierte un valor de tipo T/F en texto
Convierte un valor de una variable de tipo variante (con algn valor
entero/real/fecha/.etc.) en texto

Existen muchas otras funciones de conversin adems de las ya mencionadas. Entre ellas se encuentran
por ejemplo HexToBin, TryStrToBool, CompToDouble, etc., cuyo fin son de convertir un valor de un tipo a
otro. En algunos casos se deber utilizar un proceso conocido como Type Casting en la literatura. Esto
no debe de abrumar al lector, puesto que dependiendo de las necesidades de una aplicacin, se debern
consultar con el sistema de ayuda para mayor informacin acerca de estas funciones. Sin embargo, una
manera de recordar cmo es una funcin de conversin de tipos es la siguiente:
TipoOriginalToTipoDestino()
Como una regla genrica, si se pretende leer informacin numrica de una propiedad dada de un objeto,
en el que el usuario ingresa informacin en un formulario, la funcin de conversin correspondiente debe
de comenzar con StrTo". En contrapartida, si se quiere mandar el valor de una variable de algn tipo
numrico a la propiedad de tipo texto de algn objeto, la funcin de conversin deber finalizar con
ToStr.
ASPECTOS SOBRE LA INTERACCIN CON EL USUARIO DE UNA APLICACIN
Haciendo referencia a la figura 4, se mencion que se haban agregado ms de una etiqueta de las que
necesita el algoritmo, solo con el fin de mantener entendible lo que se solicitaba del usuario. Sin
embargo, se dejaron abierta la posibilidad de mostrar de manera ms explcita al usuario qu posibles
valores se pueden ingresar en las cajas de edicin. Tmese el siguiente formulario como ejemplo:

Fig. 6.- Formulario con valores por defecto.


En el caso anterior, el usuario puede observar claramente el tipo de dato que las cajas de edicin
esperan. Aunque no se puede modificar el valor de la etiqueta donde se mostrar el resultado, se puede
inferir que algo (en este caso un nmero) se mostrar en dicho objeto.
Es una buena costumbre el agregar valores por defecto en aquellos objetos en los que se espera que el
usuario ingrese un valor, as como mostrar en el formulario etiquetas con el mero fin de mostrar lo que se
espera que el usuario manipule o provea. Una manera ms sofisticada de explicar las acciones de una
aplicacin es proveyndola de un archivo de ayuda.
VENTANAS DE MENSAJES
Otra manera que una aplicacin puede recurrir para interactuar con el usuario es mediante cuadros de
mensajes. Un cuadro de mensaje es un formulario que el sistema emite y que a diferencia de los
formularios que el programador disea y produce, estos son creados en tiempo de ejecucin y obedecen
a ciertas directivas propias del sistema operativo. Los tipos de cuadros de mensajes que existen pueden
ser creados con las siguientes funciones/procedimientos:
ShowMessage
ShowMessagePos
MessageDlg
MessageDlgPos
MessageBox
ShowMessage es el ms sencillo de todos ellos. El cuadro aparece por defecto en el centro, el ttulo del
mismo es el nombre de la aplicacin, el texto lo indicamos nosotros, y tiene solo un botn. Para probarlo,
en una aplicacin nueva pngase un botn, hgase doble clic en l para que aparezca el editor de cdigo
en el evento doble clic, y dentro de l escrbase la siguiente instruccin:
ShowMessage ('Mensaje del programa');
ShowMessagePos necesita que se le indique el texto, y adems las coordenadas, primero el ancho y
luego el largo. Adase un nuevo botn al proyecto y en su evento OnClick agrguese la siguiente lnea:
ShowMessagePos ('Cuadro con Coordenadas',
Screen.Width div 3,
Screen.Height div 3);
Prubese el programa y observe que el cuadro sale aproximadamente en el centro. Obsrvense que las
coordenadas (Screen.Width div 3, Screen.Height div 3) dividen el ancho y el alto de la pantalla
en tres porciones enteras, las cuales localizan la esquina superior derecha de la ventana de mensaje
aproximadamente a un tercio del ancho y alto. Esto ofrece la apariencia de que el cuadro se encuentra
centrado. Prubese sustituyendo dichas coordenadas por otros valores.

MessageDlg y MessageDlgPos son similares a ShowMessage y ShowMessagePos, pero estos


adems de enviar un mensaje en pantalla al usuario, cuentan con la capacidad de recibir una respuesta
por parte del mismo.
MessageDlg, como en el caso de la instruccin ShowMessage, el primer dato que reciben es el texto
que se desea mostrar, luego el tipo de cuadro que se mostrar segn una lista predefinida por Windows,
el tercero son los botones que se van a mostrar, y para terminar el cuarto es ndice que esta relacionado
con la ayuda de la aplicacin que se crea si es que se coloca un botn de ayuda en el cuadro.
La variante de MessageDlg es MessageDlgPos, que es igual pero tiene un par de datos ms, que es, al
igual que ShowMessagePos, las coordenadas donde se situar el cuadro cuando se muestre. Su formato
es:
MessageDlg

('texto',
tipo de cuadro,
botones,
ndice de ayuda);

MessageDlgPos

('texto',
tipo de cuadro,
botones,
ndice de ayuda,
coordenada X,
coordenada Y);

Los tipos de cuadro que existen estn indicados en la lista que a continuacin se muestra. Tngase en
cuenta que segn el tipo de cuadro Windows pinta un icono en el cuadro de mensaje, por ejemplo un
cuadro de informacin mostrar un icono de exclamacin.
mtInformation
mtWarning
mtError
mtConfirmation
mtCustom
Los tipos de botones que se pueden poner son los siguientes:
mbYes
mbNo
mbOk
mbCancel
mbAbort
mbRetry
mbIgnore
mbAll
mbHelp
Cuando se ponen los tipos de botones que se desean, se deben poner entre corchetes ([ ]), y seguidos
de una coma. Otra opcin es poner un serie de botones predefinidos, pero si se hace de esta manera, no
se deben poner los corchetes. Los tipos de botones predefinidos son:
mbYesNoCancel

mbAbortRetryIgnore
mbOkCancel
Es la funcin de mensaje ms compleja para interaccin con el usuario que una aplicacin puede ofrecer,
puesto que puede proporcionar un ttulo que el programador introduce, as como establecer estilos para
la ventana, establecer un botn por defecto y un mtodo de escape, manejadores del sistema operativo,
etc. Delphi ofrece diversas opciones de sintaxis de la misma con el fin de facilitar la programacin de esta
instruccin en particular. Pero para lograr lo anterior, se deber incluir la librera QDialogs en la seccin
uses de la unidad. Una de las sintaxis que se pueden usar para esta funcin es como sigue:
MessageBox(
Ttulo,
Texto,
Estilo,
Botones,
Contexto,
X,
Y,
Defecto
Bitmap

//
//
//
//
//
//
//
//
//
);

Ttulo de la ventana
Texto del mensaje
Si se requiere desplegar un ttulo, utilcese mtCustom
Botones
Contexto de Ayuda
Posicin horizontal de la ventana en la pantalla
Posicin vertical de la ventana en la pantalla
Botn seleccionado por defecto
Imagen bmp a mandar junto con el mensaje

EJEMPLO
Se tiene el ejemplo anterior, pero ahora se han aadido mensajes del sistema de la siguiente manera:
procedure TForm1.Button1Click(Sender: TObject);
var
A, B, C: real;
begin
A:= strtofloat(Edit1.text);
ShowMessage('Variable A ingres con xito');
B:= strtofloat(Edit2.text);
ShowMessagePos('Variable B ingres con xito',100,100);
C:= A + B;
MessageDlg('C = A +B , Calculado', mtInformation, [mbOK], 0);
Label4.Caption := floattostr(C);
MessageDlg(
'Mensaje del sistema', 'Listo!!', mtCustom,
[mbOk], 0, mbOk, nil);
end;
En este caso se puede observar cmo se comportan las diferentes cajas de mensajes. Cabe recalcar que
para el caso de la instruccin:
MessageDlg(

'Mensaje del sistema', 'Listo!!', mtCustom,


[mbOk], 0, mbOk, nil);

... se aadi la librera QDialogs en la seccin uses de la unidad.


VENTANAS DE ACCESO DE INFORMACIN (CAJAS DE INGRESO)
En algunos casos, ser necesario que el usuario proporcione informacin que no necesariamente ser
proporcionada por alguno de los objetos en un formulario. Esto conlleva a tener una aplicacin ms

interactiva. Para ello, Delphi provee la funcin InputBox, la cual se refieren a la manipulacin de
ventanas en las que el usuario ingresa informacin para ser usada en la aplicacin. La sintaxis ms
sencilla de la funcin anterior es:
InputBox

(TtuloDeLaVentana,
Pregunta,
ValorPorDefecto);

A diferencia de los mensajes, las cajas de ingreso necesariamente tienen que asignar el valor que el
usuario ingrese, a una variable. En el caso de la funcin anterior, el valor que el usuario proporciona se
considera de tipo texto (ya sea texto, nmero, valor de verdad, etc.). Tmese como ejemplo la siguiente
aplicacin: Supngase que se desea crear una aplicacin que le pida al usuario un dato y que imprima el
valor de este dato en una caja de mensaje. Sin poner mucha atencin en el formulario de trabajo, el botn
de ejecucin correspondiente contendr el siguiente cdigo fuente:
procedure TForm1.Button1Click(Sender: TObject);
var
entrada: string;
begin
entrada:= InputBox('Sistema...','Ingrese el valor', '');
Showmessage(entrada);
end;
Al ejecutar el cdigo anterior, se producen los siguientes mensajes:
Caja de ingreso:

Mensaje:

Tanto los objetos como las cajas de mensajes y las cajas de ingreso son algunas de la posibilidades que
se tienen a la mano para crear aplicaciones que interacten con el usuario. Sin embargo, no son las
nicas. Queda a juicio del lector el explorar diferentes maneras de crear aplicaciones utilizando los
conceptos aqu expuestos.