Está en la página 1de 24

República Bolivariana de Venezuela

Universidad Nacional Experimental del Táchira
Departamento de Ingeniería Informática
Computacion II­Ingeniería Electrónica (6010)
San Cristóbal­Venezuela
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Tema Perteneciente a la Unidad Nº 4: Programación en C++ Builder.
 
 
 
 
 
 
 
 
 
 
 

 
Autor: Lcdo. José Froilán Guerrero Pulido
 
 
 
 
Mayo, 2004
 

Uso del Formulario (TForm)
 

Las propiedades de un objeto se caracterizan por ser una combinación entre un miembro
de  datos  y  un  método.  Al  tratar  una  propiedad  es  como  si  se  tratase  de  una  variable,
obteniendo su valor o modificándolo. Sin embargo, en muchas ocasiones cuando se accede al
valor de una propiedad se estará de manera indirecta provocando la ejecución de un método,
cuya  finalidad  es  realizar  alguna  acción  según  la  modificación  efectuada.  Existen  ciertas
propiedades que solo son accesibles durante el diseño, mientras que otras solo son accesibles
durante  la  ejecución.  Una  propiedad  además  también  puede  ser  un  objeto  (se  identifican
porque al lado izquierdo aparece el signo +) que a su vez contiene propiedades particulares.
 
Los  eventos  son  señales  internas  o  externas  a  la  aplicación  que  el  programa  aprovecha  para
ejecutar cierto bloque de código. Todos los componentes tiene asociado un evento por defecto, aunque
inicialmente es posible crear un método de respuesta distinto para cada evento. Al igual que ocurre con
cualquier  función,  los  métodos  de  respuesta  a  eventos  también  pueden  recibir  parámetros  de  distintos
tipos. Un parámetro común a los métodos de respuesta a eventos, que se recibe siempre en primer lugar,
es  el  llamado  Sender,  un  puntero  de  tipo  TObject.  Este  parámetro  es  una  referencia  a  un  objeto,
concretamente al objeto que ha dado origen al evento.
 
A medida que un proyecto se inserten formularios sobre estos se añaden componentes o controles
a  los  cuales  se  les  asocia  eventos.  Un  formulario  puede  contener  objetos  tales  como:  TButton,
TCheckBox, TComboBox, entre otros. Como se conoce un archivo de C++ se compone al menos de un
archivo  de  código  con  el  programa  principal  y  por  defecto  con  la  función  principal  (WinMain),  y
opcionalmente  de  una  serie  de  módulos  a  los  cuales  es  posible  alojar  funciones  y  clases  de
objetos.Cuando se definen formularios estos son descendientes en principio a un objeto del tipo TForm.
Es  posible  también  crear  formularios  teniendo  como  base  otros  formularios  ya  existentes,  por  lo  que  el
tipo base no será directamente el objeto TForm, aunque éste estará siempre como ascendiente en algún
punto de la jerarquía.
 
Cuando se parte de un nuevo proyecto observe el nombre asignado por defecto al primer módulo
del proyecto (Unit1.cpp), este módulo incluye los archivos de cabecera necesarios para la totalidad de las
aplicaciones Windows y la definición inicial de un nuevo tipo de objeto, TForm1, que es derivado del tipo
TForm.  Ahora,  cualquier  manipulación  sobre  el  formulario  a  nivel  de  componentes  y  eventos  tiene  su
reflejo inmediato en el código del módulo asociado al formulario. En el programa principal a medida que
se  vayan  añadiendo  formularios  al  proyecto  se  irán  insertando  líneas  con  la  macro  USERFORM,
relacionando todos los módulos de código o formularios con el módulo principal.
 
Al  iniciar  el  desarrollo  de  una  aplicación  en  donde  existen  una  serie  de  formularios  de  apariencia
común  para  la  entrada  de  datos  y  visualización  de  resultados,  esto  implica  el  diseñar  una  uniformidad
general  entre  formularios.  La  idea  es  comenzar  el  proyecto  diseñando  una  plantilla  que  contenga  los
aspectos generales de los formularios, hasta incluir código de algunos componentes. Creado y dado un
nombre al formulario que serviría como plantilla, este puede ser usado abriendo el depósito de objetos y
ubicándose sobre la página del proyecto donde se podrá seleccionar el formulario. Si la idea es heredar
los componentes y métodos de la plantilla para un nuevo formulario, se hace necesario tener en cuenta
que la plantilla sea heredada (opción inherit del depósito de objetos), esto implica que al momento de abrir
el archivo DFM (inherited) del nuevo formulario no se observará toda la información necesaria acerca de
los  componentes,  ya  que  la  información  adicional  se  encuentra  en  el  archivo  DFM  del  formulario  que
actúa  como  plantilla.  Lo  planteado  en  este  párrafo  se  conoce  como  reutilización  de  formularios  en  un
mismo proyecto.   
 
Un formulario que ha nacido en una determinada aplicación como base para el desarrollo de otros
formularios más especializados, puede ser útil posteriormente en otros proyectos, sobre todo si lo que se
busca  es  tener  desarrollos  comunes  entre  las  aplicaciones  informáticas  diseñadas.  Para  añadir  el
formulario base al depósito de objetos se debe pulsar el botón derecho del ratón y seleccionar la opción
“Add To Repository”. Luego aparecerá una ventana donde se muestra una lista con los nombres de todos

 De hecho.  el  cual estará activo al iniciar la aplicación. AutoScroll Si  el  valor  de  la  propiedad  es  verdadero. Icon Establecer  el  icono  que  aparecerá  en  la  barra  de  título  de  la  aplicación. .   A continuación se definen las propiedades más importantes del componente TForm. BorderStyle Cambiar el estilo o la apariencia de los bordes en el formulario. FormStyle Definir el estilo del formulario. Al crearse una nueva aplicación  tomando  como  base  otro  proyecto. HelpContext Asociar al formulario una página de ayuda. fsMDIChild = El formulario actúa como ventana hija dentro de un formulario principal. bsNone = Elimina el borde de la ventana. HelpFile Definir la ubicación del archivo de ayuda. en la página “Projects” del depósito de objetos existen varios modelos de aplicación ya prediseñados.los  formularios  del  proyecto  actual.  Valores: poNone = No mantener proporción alguna. fsStayOnTop = El formulario permanece sobre otro sin ser ocultado. Tag Permitir asociar un valor entero al objeto manipulado. Valores: fsNormal = Corresponde a un formulario independiente sin ventanas internas. Esta posibilidad esta dirigida sobre todo a reducir el tiempo empleado en la creación del esqueleto de una aplicación. VertScrollBar Editar la barra de desplazamiento vertical.   Propiedad Significado ActiveControl Cuando  un  formulario  tiene  diversos  componentes  el  control  lo  toma  uno  de  ellos. poPrintToFit  =  Ocupar  el  mayor  espacio  posible  en  la  página  manteniendo  la  proporción  del formulario.  seleccione  el  formulario  que  desea  almacenar  en  el  depósito  de objetos y adicione un título. Dado este paso.  las  barras  del  desplazamiento  aparecen automáticamente cuando sea necesario. Los  proyectos  que  vayan  añadirse  al  depósito  de  objetos  para  ser  posteriormente  utilizados  deberán almacenarse en un directorio que tan solo contenga los elementos de este proyecto. una descripción. Para añadir un proyecto al depósito de objetos se  abre  el  menú  “Project”  y  seleccionar  la  opción  “Add  To  Repository”.  Luego  aparecerá  una  ventana como la descrita en el párrafo anterior.  C++  Builder  preguntará  cuál  será  el  directorio  del  nuevo proyecto y copiará en él todos los archivos del proyecto base. bsSingle = Permite durante la ejecución que el formulario no pueda ser redimensionado. Cursor Cambiar el cursor que se establece para el área caliente del formulario.  Usar  el  método LoadFromFile de la clase TIcon. Con un valor distinto a cero y presionando la tecla F1 se activará el archivo de ayuda. la barra de título con todos sus controles. Valores: bsSizeable = Permite durante la ejecución que el formulario pueda ser redimensionado. el nombre del autor. fsMDIForm = El formulario actúa como marco principal para otras ventanas hijas. siempre que se desee iniciar un nuevo proyecto se puede elegir la página adecuada del depósito de objetos y hacer doble clic sobre el icono adecuado. que suele ser siempre igual. PrintScale Imprimir  un  formulario  mediante  la  invocación  de  un  método  de  la  clase  TForm. poProportional = Imprimir el mismo número de pixels en impresora que en pantalla.  A  partir  de  este  momento  se  podrá  usar  el  formulario  siempre  que  lo desee en cualquier otra aplicación o proyecto.   Además  de  usar  formularios  individuales  también  se  puede  reutilizar  aplicaciones  o  proyectos completos. Caption Definir el nombre de la barra de título del formulario. HorzScrollBar Editar la barra de desplazamiento horizontal. en que ficha o página del depósito de objetos se alojará el formulario (escoja la ficha “Forms” como el destino más lógico del formulario base) y un  icono  para  su  representación.

poDefaultSizeOnly  =  La  posición  del  formulario  permanece  fijo. esta función devolverá un objeto de tipo TBitmap. Color Seleccionar un color de fondo para el formulario. . el formulario aparecerá en la misma posición y tamaño que se fijó durante el diseño. ShowHint Si  el  valor  de  la  propiedad  es  verdadero. o se presenta en su estado normal. Hide Ocultar un formulario de tal forma que no sea accesible por parte del usuario de la aplicación. Enabled Si  el  valor  de  la  propiedad  es  falso. Top Define la coordenada vertical del formulario. Heigth Define la altura del formulario. porque esta activa y oculta en parte. Close Cerrar un formulario que no se va a utilizar más en el programa. OnMouseDown Se genera cuando se pulsa cualquiera de los botones del mouse. Position Cambiar la posición y el tamaño del formulario en pantalla. Visible Si el valor de la propiedad es verdadero. Width Define el ancho del formulario. OnClick Denota una pulsación del botón izquierdo del mouse sobre algún control. poDefault = El formulario cambiará de posición y el tamaño durante cada ejecución. el formulario se hace visible. Left Define la coordenada horizontal del formulario. Valores: poDesigned = Es el valor por defecto. BorderIcons Activar/Desactivar los botones de la barra de título del formulario.  Esta  propiedad  trabaja  en conjunto con la propiedad Visible. poScreenCenter  =  El  formulario  aparece  en  el  centro  de  la  pantalla  conservando  el  tamaño dado en el diseño. maximiza. recibiendo este evento aquel control que en ese momento se encuentra bajo el cursor. WindowsState Determina si el formulario se minimiza.  mientras  que  el  tamaño  va cambiando en cada ejecución. Print Obtener una copia impresa del formulario. SendToBack Enviar el formulario al fondo de la pantalla. BringToFront Disponer de un formulario sobre los demás. En cuanto a los eventos más usados del componente TForm se indican los siguientes:   Evento Significado OnMouseMove Este  es  un  evento  recibido  por  un  componente  a  medida  que  el  cursor  del  mouse  se  mueve sobre él.  mientras  que  la  posición  va cambiando en cada ejecución.  el  formulario  no  estará  activo. OnMouseUp Cada vez que se libera un botón del mouse sobre el control.Hint Asignar una cadena de caracteres para la etiqueta de ayuda.   Entre los métodos más usados del componente TForm se especifican los siguientes:   Método Significado Show Hacer visible un formulario disponiéndola sobre las demás ventanas abiertas. GetFormImage Capturar una imagen del formulario.  la  etiqueta  de  ayuda  aparece  automáticamente cuando sea necesario. debajo de las demás ventanas. Destroy Destruir un formulario al cual no se podrá acceder a sus miembros. poDefaultPosOnly  =  El  tamaño  del  formulario  permanece  fijo.

 Valores: alNone = Conserva la posición y dimensiones originales. OnKeyDown Se produce al pulsarse cualquier tecla. OnShow Antes de que un formulario se haga visible se genera este evento.  Suele  utilizarse  este  texto  para  etiquetar  otro  control. Caption Toma el valor que se mostrará en la etiqueta de texto. OnDragDrop Se  produce  cuando  el  elemento  es  soltado  sobre  el  control. sino el código virtual de la tecla pulsada. OnDeactivate Este evento se genera cuando el formulario se vuelve inactivo.   Propiedad Significado Name Toma el nombre que tendrá el componente al momento de hacer referencia de este durante la programación. OnResize Cada vez que el tamaño de un formulario sea modificado durante la ejecución.OnDblClick Denota doble pulsación (doble clic) del botón izquierdo del mouse sobre algún control. OnDragOver Se  produce  cuando  sobre  un  determinado  control  se  desplaza  un  elemento  que  está  siendo arrastrado. porque se ha cambiado a otra ventana de la aplicación. Left y Top Contiene las coordenadas horizontal y vertical del componente. desempeño u ejecución de otros componentes que a continuación se explicaran. OnKeyUp Este evento se genera al momento de liberar una tecla. OnDestroy Cuando  un  formulario  no  va  a  ser  utilizado  más  en  el  programa  después  de  ocultarse  se destruye. Visible Si el valor de la propiedad es verdadero. OnActivate Este evento se produce en el momento en que el formulario se convierte en la ventana activa del entorno.     Componentes Receptores de Texto de Uso más Frecuente   TLabel (Standar): Este control permite mostrar texto estático en el formulario. OnHide Este evento se produce justo antes de que el formulario sea ocultado. tipo  de  letra  y  tamaño. Tenga en cuenta que el código recibido no es el código ASCII. color. Align Controla la alineación del componente en el contenedor que se encuentre.    A  continuación  se  definen  las  propiedades  más importantes del componente TLabel. AutoSize Si  el  valor  de  la  propiedad  es  verdadero.  Al  no  poseer  formato  de ventana  no  puede  recibir  entradas  desde  el  teclado. OnClose Cuando un formulario ha dejado de ser útil en pantalla.  provoca  que  las  dimensiones  del  componente  se ajusten con exactitud al texto. excluyendo teclas de función o edición. OnKeyPress Se produce al pulsarse cualquier tecla normal.  liberando  el  botón  izquierdo  del mouse. la etiqueta se hace visible. . Width y Height Contiene el ancho y el alto del componente. fijando su posición. OnPaint Este evento se genera cada vez que el formulario necesita ser dibujado en pantalla. OnCreate Se genera cuando el formulario va a ser creado.     Algunos de los eventos tratados en la tabla anterior son útiles para el comportamiento.

 por ejemplo el valor de un campo de una tabla de una  base  de  datos  con  la  que  esté  asociado. Color Establece un color de fondo para el componente.  especificando  los  valores correspondientes a las propiedades: Left. Tamaño. SendToBack. El valor de la propiedad por defecto  es  falso.  por  lo  cual  el  usuario  al  momento  de  introducir  cualquier  carácter.     TEdit (Standar): Este control permite la entrada de datos por teclado. alLeft = Margen izquierdo del contenedor. pueden ser manipuladas en el TLabel. Font Permite modificar los atributos del texto (Fuente. Inicialmente esta propiedad tiene el valor de cero indicando que en principio no existe un límite. Otras propiedades tratadas en el aparte referido al formulario. ReadOnly El contenido del campo de texto será de sólo lectura. pueden ser manipulados en el Tlabel. Show y Hide. alClient = Todo el espacio disponible en el contenedor. Transparent Si el valor de la propiedad es verdadero. tal es el caso de: BringToFront. Estilo y Efectos). FocusControl Permite seleccionar de la lista adjunta el nombre del componente TEdit que corresponda. Alignment Permite alinear el texto a la izquierda.   Entre los métodos más usados del componente TLabel se especifican los siguientes:   Método Significado Contains Determina si algunos valores constantes se encuentran activos o no en una propiedad. Es un control de texto desplegable de una sola línea. CharCase Permite convertir las letras introducidas a mayúsculas o a minúsculas. SetBounds Permite  modificar  la  posición  y  dimensiones  del  componente.  la propiedad tomará el valor de verdadero. Otros métodos tratados en el aparte referido al formulario. Width y Height. Text Toma el valor que se mostrará en el cuadro de texto inicialmente.alTop = Margen superior del contenedor. el cuadro de texto estará activo. Tamaño. alBottom = Margen inferior del contenedor. MaxLenght Establece el máximo número de caracteres que se desean admitir en el control. Tag y Cursor. Valores: ecNormal = No se realiza conversión alguna. ShowHint. Estilo y Efectos). provoca que la propiedad no tenga efecto alguno. no modificable por parte del usuario. Color Establece un color de fondo para el componente. Font Permite modificar los atributos del texto (Fuente. Top. pudiendo servir también para que el usuario visualice el texto que el control recibe. Modified Determina si el contenido de una celda ha sido modificado o no. Se usa para recuperar el texto que los usuarios escriben. derecha o centrado. ecUpperCase = Todas las minúsculas a mayúsculas. Color.   Propiedad Significado Name Toma el nombre que tendrá el componente al momento de hacer referencia de este durante la programación. Color. . Enabled Si el valor de la propiedad es verdadero. alRight = Margen derecho del contenedor. ecLowerCase = Todas las mayúsculas a minúsculas. tal es el caso de: Hint. Enabled.  Muchas  de  las  propiedades  de  este  componente  son comunes al componente TLabel.

PasteFromClipboard Tomar el texto existente en el portapapeles e insertarlo en la posición que indique el cursor en el control.  Este componente sirve para implementar un control TEdit con un formato de entrada genérico. SelStart Permite conocer la posición a partir de la cual se ha marcado una porción de texto.  el  cual  no  se  tiene  que  crear.   El  control  TEdit  cuenta  con  un  menú  contextual  específico. insertando un nuevo carácter o borrando parte del contenido. CutToClipboard Copiar y borrar el texto seleccionado del componente en el portapapeles. SelLenght Permite conocer la longitud del texto marcado en el componente. Durante la ejecución. CopyToClipboard Copiar el texto seleccionado en el portapapeles. Height. TabOrder Permite  establecer  un  valor  numérico  para  establecer  el  orden  en  que  se  irán  activando  los distintos componentes del formulario. la máscara que hayamos aplicado condicionará tanto la introducción de datos en el campo como la visualización de éstos. HideSelection Si el valor de la propiedad es verdadero. para ello se tiene la opción “Tab Order” del menú contextual del formulario.  Left.AutoSize. Tag y Cursor. Otros métodos que pueden ser utilizados en este componente son: Show. SelText Sirve para obtener el texto que se encuentra seleccionado en el control como para cambiarlo por otro. TabStop Determina si el componente se active mediante la pulsación de la tecla tabulador. Otras  propiedades  que  pueden  ser  tratadas  en  este  componente  son:  BorderStyle. AutoSelect Si  el  valor  de  la  propiedad  es  verdadero. Dicha máscara es una cadena de caracteres en la cual algunos tienen un significado especial.  Width. Hide. BringToFront y SendToBack. Esta cadena tendrá que asignarse a la propiedad EditMask. El primer campo es la máscara de entrada. oculta la selección del texto cuando sale del control.  indica  al  control  que  cada  vez  que  se  active seleccione todo el contenido o texto.  ni gestionar. OnExit Se genera en el momento en que el cuadro de texto deja de ser activo en el formulario. Entre los eventos más significativos de este control se especifican los siguientes:   Evento     Significado OnEnter Se  genera  en  el  momento  en  que  el  cuadro  de  texto  se  convierta  en  el  control  activo  del formulario. Una máscara consta de tres campos separados por un punto y coma.  Top.  Otro  aspecto  importante  a  destacar  es  que  C++  Builder  nos  permite  establecer  el  orden  de acceso a los componentes de una forma más cómoda.PasswordChar Establece  que  la  información  introducida  por  teclado  no  se  refleje  en  pantalla  sustituyendo cada uno de los caracteres por un cierto símbolo.   Método Significado SelectAll Selecciona todo el texto existente en el control. ShowHint. ClearSelection Elimina el texto seleccionado en ese momento en el control. OnChange Cada vez que se realice una modificación en el contenido del campo de texto. Hint. TMaskEdit  (Additional):  Con  este  control  se  puede  establecer  una  máscara  de  control.  El tercero es el carácter de la máscara usado para representar los caracteres que no contiene la máscara de . El segundo campo es  el  carácter  que  determina  si  los  caracteres  de  la  máscara  se  deben  guardar  junto  con  los  datos. o bien elegir esa misma opción “Edit” del menú principal.

ssHorizontal = Horizontal. ssVertical = Vertical. Top. A Requiere la entrada de un carácter alfanumérico.   Propiedad   Significado Lines Permite  activar  la  ventana  de  edición  para  la  introducción  de  múltiples  líneas  de  texto. WantReturns Si el valor de la propiedad es verdadero. ScrollBars Facilita  el  desplazamiento  por  el  texto  activando  las  respectivas  barras  de  desplazamiento. # Permite la entrada de un carácter numérico o de signo. Las propiedades de este control coinciden en su mayor parte con las del control TEdit.  el  cursor  se  desplazará  a  la  línea  siguiente  en  el mismo momento en que llegue al margen derecho. < Los caracteres siguientes aparecerán en mayúsculas. .Left.validación. se puede hacer uso de la tecla tabulador. que además puede estar distribuido en múltiples líneas. > Los caracteres siguientes aparecerán en minúsculas. ssBoth = Ambas (vertical y horizontal). así como guardar el texto actual del control en un archivo. c Permite la entrada de un carácter. L Requiere la entrada de un carácter alfabético. l Permite la entrada de un carácter alfabético. Width. : Separador de horas y minutos. dividiendo automáticamente la línea por la última palabra. WantTabs Si el valor de la propiedad es verdadero. \ Interpreta el carácter siguiente como no especial. Hint. se puede hacer uso de la tecla Enter o Intro.        Caracter Significado C Requiere la entrada de un carácter. ShowHint. / Separador de fechas. 0 Requiere la entrada de un carácter numérico. _ Representa un espacio en blanco. ; Separador interno de la máscara. Tag. TMemo  (Standard):  Este  control  es  muy  similar  al  control  TEdit. Valores: ssNone = Ninguna (valor por defecto). También se puede recuperar el contenido de un archivo.   A través de la propiedad EditMask permite activar la ventana de edición de la máscara que actuará en  el  campo  de  texto. Height. Cursor y Font. AutoSize. a Permite la entrada de un carácter alfanumérico. 9 Permite la entrada de un carácter numérico.  con  la  diferencia  de  que  es  posible trabajar con una mayor extensión de texto.  Otras  propiedades  que  pueden  ser  tratadas  en  este  componente  son: BorderStyle. WordWrap Si  el  valor  de  la  propiedad  es  verdadero. <> Desactiva la función de los dos caracteres anteriores.

 se asigne como un nuevo elemento de la lista. muestra los elementos ordenados alfabéticamente.   TComboBox (Standard): Este control es una combinación del TListBox y TEdit. evitando la visualización parcial de un elemento. Sorted Si el valor de la propiedad es verdadero. En caso de que el número de elementos excede las dimensiones de la lista. las propiedades de una lista combinada son un conjunto que resulta de la unión de las propiedades . como elementos gráficos. Insert Permite insertar texto en el control en una cierta posición.   Propiedad Significado Items Permite editar los elementos que contendrá la lista.  la  lista  toma  un  valor  proporcional  a  la  altura  de  un elemento. SelCount Conocer cuantos elementos hay marcados actualmente. MultiSelect Si  el  valor  de  la  propiedad  es  verdadero. Style Permite presentar otros objetos. Delete Permite eliminar texto existente en el control. LoadFromFile Captura el texto contenido en el control para un archivo de texto.   Una de las grandes limitaciones del control es que no permite usar atributos diferentes para el texto. ItemHeight Especifica la altura en puntos de los elementos de la lista. Columns Especifica el número de columnas que existirán en el contenedor. Al tratarse de un control combinado que tiene funciones de un campo de edición y de una lista. en el control aparecen las barras de desplazamiento. Canvas Permite dibujar el elemento sobre la superficie de la lista.   TListBox (Standard): Este control es capaz de contener cadenas de caracteres cada una de las cuales aparece como elementos de la lista. al que se conoce como lista combinada. SaveToFile Permite guardar el contenido actual del control en un archivo de texto. Move Permite mover una determinada línea de una posición a otra. ibOwnerDrawFixed = Cada elemento es distinto pero con una altura fija.   Por medio del método Add por el que se consigue incluir los primeros elementos de la lista cuando se  crea  el  formulario. Selected Conocer que elementos están marcados de la lista.  permite  seleccionar  más  de  un  elemento  de  la  lista (tecla Ctrl + pulsación del botón izquierdo). Valores: ibStandard = Todos los elementos son cadenas.Entre los métodos más usados del componente TMemo se nombran los siguientes:   Método Significado Add Permite añadir texto al final del contenido actual existente en el control.  También  intervenir  el  usuario  en  tiempo  de  ejecución  de  manera  que  los  que  él escriba en un control. sangrado de párrafos.  El  valor  –1  por defecto indica que no hay ningún elemento seleccionado. etc. como tamaños o estilos. Exchange Intercambia la posición de dos cadenas de texto. TEdit por ejemplo. ibOwnerDrawVariable = Cada elemento tiene una altura variable. ItemIndex Permite  conocer  que  elemento  está  seleccionado  actualmente  en  la  lista. IntegralHeight Si  el  valor  de  la  propiedad  es  verdadero. ni dispone de capacidad alguna de alineación.

 Este componente cuenta con algunas propiedades adicionales que .   Propiedad Significado Caption Toma el texto que se mostrará en el botón. csSimple = Campo de edición sin lista.  Enabled. ItemIndex Permite  conocer  que  elemento  está  seleccionado  actualmente  en  la  lista. Este botón es más intuitivo ya que el gráfico ofrece una indicación que en la mayoría de los casos. contando con algunas propiedades adicionales especificas. DropDownCount Especifica el número máximo de elementos que se visualizaran en la lista desplegable. Valores: mrNone = 0 mrYes = idYes mrNo = idNo mrOk = idOk mrCancel = idCancel mrAbort = idAbort mrRetry = idRetry mrIgnore = idIgnore Otras  propiedades  que  pueden  ser  manipuladas  en  el  TButton.  Este  carácter  que  aparece  en  el  botón  subrayado  y  haciendo  uso  de  la  tecla  Alt permite activar y pulsar el botón en un solo paso.  Tag  y Cursor.  por  ello  no  existen  las propiedades MultiSelect. y al cerrarlo generalmente se devuelve un valor indicando la causa de la salida.  tal  es  el  caso  de:  Name. Default y Cancel Si  el  valor  de  la  propiedad  es  verdadero.    En  una  lista  combinada  no  es  posible  seleccionar  múltiples  elementos. csDropDownList = Lista sin campo de edición.  Font. csOwnerDrawVariable = Elementos distintos con altura variable. csOwnerDrawFixed = Elementos distintos con altura fija. a su vez puede contar con un carácter precedido de  un  &.de los dos controles antes mencionados.     TBitBtn  (Additional):  Este  es  un  tipo  de  botón  que  incorpora  un  gráfico  en  su  interior  de  manera adicional al texto. SelectCount y Selected. ModalResult Un cuadro de diálogo modal se caracteriza por no permitir el acceso a ninguna otra ventana de la aplicación mientras él se encuentre abierto.  provoca  que  un  cierto  botón  actúe  como  botón  por defecto o de cancelación. Text Obtener el texto del elemento seleccionado. hace innecesario el texto. Valores: csDropDown = Lista con campo de edición asociado.   Componentes para Iniciar Órdenes (Botones)   TButton (Standar): Este control de área rectangular que contiene un texto en su interior y que al pulsarlo lleva a cabo una determinada acción. ExtendedSelect.   Propiedad Significado Style Permite elegir el estilo adecuado del control.  El  valor  –1  por defecto indica que no hay ningún elemento seleccionado.

  Entre  las  propiedades  de  este  componente  se mencionan las siguientes:   Propiedad Significado Glyph Permite asociar una imagen al botón. Enabled. Flat Si el valor de la propiedad es falso.permitan  mostrar  una  pequeña  imagen  en  el  botón.     TToolBar  (Win32):  Este  componente  tiene  como  uso  servir  de  contenedor  de  botones  del  tipo TToolButton.   Propiedad Significado GroupIndex Permite crear grupos de botones que funcionarán de forma conjunta. NumGlyphs. AllowAllUp Si el valor de la propiedad es verdadero. Margin. se consigue que todos los botones del grupo pueden estar liberados y para cambiar su estado. Default.  Estas dimensiones deberán estar acorde con el tamaño de las imágenes que se vayan a mostrar en el interior de los botones. y para ser utilizado de forma conjunta con otros botones del mismo tipo. Al insertar un componente de este tipo en el formulario lo único que se observará un área rectangular ocupando la parte superior de la ventana. Layout Determina la posición del gráfico en el interior del botón. de liberados a pulsados o viceversa. Otras propiedades tratadas en el aparte referido al TBitBtn. Layout. . tal es el caso de: Glyph. blGlyphRight = A la derecha. el botón se encuentra pulsado.  los  botones  serán  planos destacándose sobre los demás solo cuando el cursor del mouse pase sobre ellos. Cancel. Para crear un grupo tendremos que modificar a un valor distinto a cero.  El gráfico  que  se  cree  puede  realmente  contener  hasta  cuatro  imágenes. Spacing Determina el número de puntos de separación entre el borde del botón y el texto. Margin Determina el número de puntos de separación entre el borde del botón y el gráfico. causa que los botones aparezcan resaltados en la barra. Valores: blGlyphLeft = A la izquierda. Tag y Cursor. con  un  recuadro  alrededor.  dispuestas  junto  a  la otra horizontalmente.     TSpeedButton (Additional): Este componente es un botón que contiene solo un gráfico en su interior. Otras propiedades tratadas en el aparte referido al TButton. Hint. sin texto. para ello se debe recuperar la imagen desde el archivo donde se encuentre. ShowHint y Spacing. este valor debe ser mismo para todos los botones que formarán parte del grupo. Down Si el valor de la propiedad es verdadero. blGlyphTop = En la parte superior central.   Propiedad ButtonHeight  ButtonWidth Significado y Los  botones  existentes  en  la  barra  tendrán  las  mismas  dimensiones  (alto  y  ancho). de tal forma que al pulsar uno de ellos los demás se muestren liberados. Kind Selección del tipo de botón con gráfico predefinido por la propiedad en cuestión. Caption.  Cuando  el  valor  es  verdadero. pueden ser manipuladas en el TBitBtn. NumGlyphs Permite  que  el  componente  conozca  cuantas  imágenes  hemos  incluido  en  el  gráfico. pueden ser manipuladas en el TSpeedButton. tal es el caso de: Name. Font. blGlyphBottom = En la parte inferior central. ModalResult.

  aparecen  dos  opciones:  New  Button  y  New  Separator. TTreeView o TListView. . cuyos nombres se asignarán a las propiedades Images. ImageType Tipo de imagen a utilizar para dibujar. Hint. Desplegando el menú contextual  del  componente. Count Número de imágenes contenidas. AutoSize. cada una de las cuales puede ser referenciada por su índice.   Propiedad Significado AllocBy Incremento cada vez que sea necesario aumentar el número de imágenes.Images Contiene el nombre de las imágenes que representan a los botones en su estado normal. Hint. HotImages.  El  menú  deberá  estar diseñado a través del componente TPopupMenu y será un menú que se activará por medio del botón derecho del mouse. Masked Indica si la imágenes son transparentes o no. DisabledImages. tbsCheck = Botón que puede estar o no pulsado. Otras propiedades pueden ser tratadas en este componente. ShowHint y Transparent. BkColor Color de fondo a utilizar al dibujar una imagen.  que  son  las  que facilitan  en  la  barra  de  un  nuevo  botón  o  un  separador. Valores: tbsButton = Un botón normal. DrawingStyle Estilo para el dibujo de una imagen.   Puesto que en la barra (TToolBar) existen múltiples botones. tbsDivider = Línea Divisoria. Color. BlendColor Color de combinación. Width Anchura de las imágenes. tbsDropDown = Botón con un menú desplegable.  respectivamente.   Propiedad Significado Caption Permite establecer el título asociado al botón. ShareImages Indica si las imágenes son compartidas con otro control. desactivado o caliente) en distintos TImageList. Style Indica el tipo de estilo que va a contener el botón. PopupMenu Nombre  del  menú  que  estará  asociado  con  el  estilo  tbsDropDown. Height Altura de las imágenes. ImageIndex Indica el índice de la imagen que se ha de mostrar en el interior del botón. HotImages Contiene el nombre de las imágenes que se usarán al momento de situar el cursor sobre los botones. ShowHint y Cursor. tal es el caso de: Down.     TImageList  (Win32):  Este  componente  es  un  contenedor  de  imágenes  del  mismo  tamaño  (grupos  de iconos o mapa de bits). Otras  propiedades  tratadas  en  otros  componentes  pueden  ser  manipuladas  en  el  TToolBar.  tal  es  el  caso  de: Align. haciéndoles aparecer destacados sobre los demás.  Cada  uno  de  los  botones insertados en la barra es un componente TToolButton que cuenta con sus propiedades y eventos. será necesario disponer de múltiples imágenes en cada estado (normal. tbsSeparator = Espacio de separación. En la mayoría de las ocasiones este componente será usado en conjunción con un TToolBar. DisabledImages Contiene  el  nombre  de  las  imágenes  que  representan  a  los  botones  cuando  esten desactivados.

 ParentColor y ParentShowHint toman el valor de verdadero.  pero  realmente  dicho componente no estará contenido en el grupo. agrupándolos y no dispone de ninguna propiedad en especial. indicando así que los valores de las propiedades Font. cbGrayed = Indeterminado.  Habitualmente  este  control  puede  aparecer  en  dos estados distintos: marcado (true) o sin marcar (false).   TGroupBox (Standard): La finalidad de este componente es actuar como padre o contenedor de otros componentes.   . Mediante este control se facilita la selección de múltiples opciones. AllowGrayed Si el valor de la propiedad es verdadero.   Tras  insertar  el  componente  haga  doble  clic  sobre  él. Entre las propiedades de este componente se mencionan las siguientes:   Propiedad Significado Caption Permite asignar el título que aparecerá junto a la caja de selección.  Mediante  este  control  se  facilita  la  selección  de  una  sola  opción  en  un  determinado  instante.  Aunque  los  controles  que  normalmente  se agrupan son los botones de radio. mediante este componente se pueden agrupar cualquier conjunto de controles.  si  la  imagen  se  ajusta  a  las  dimensiones  por  defecto.Todas  las  imágenes  contenidas  en  este  componente  deben  tener  exactamente  el  mismo  tamaño. Color y ShowHint de un determinado componente insertado serán tomados del contenedor TGroupBox.   En el caso de disponer de un determinado componente en el formulario y lo desplacemos al interior del  TGroupBox.   TRadioButton (Standard): Este control permite al usuario activar o desactivar una cierta opción. Checked Determina  el  estado  actual  del  control. Valores: cbChecked = Marcado. el control no aparecerá ni marcado ni sin marcar. estableciendo adicionalmente parámetros como el color  que  sea  transparente. cbUnchecked = Desmarcado. State También determina el estado actual del control.         Componentes de Selección de Opciones o Valores   TCheckBox  (Standard):  Este  control  permite  al  usuario  activar  o  desactivar  una  cierta  opción  sin necesidad de escribir nada.   Las propiedades ParentFont.  se  corta  o  aparece centrada.  luego  aparecerá  una  ventana  en  donde  se podrá ir añadiendo imágenes mediante el botón “Add”. sin importar su tipo.  con  un  título  en  la  parte  superior  izquierda  (Título  que podrá  ser  modificado  a  través  de  la  propiedad  Caption).  éste  aparecerá  como  un  recuadro.  así  para imágenes de diferentes dimensiones se tendrá que usar varios componentes TImageList.  lo  único  que  realmente  hecho  será  modificar  su  posición. un estado indeterminado. bastará con  elegir  cualquier  opción  desmarcando  el  botón  de  radio  que  se  encontraba  marcado  en  dicho momento. bastará con realizar una pulsación sobre el control. Al insertar el componente en el  formulario. Las propiedades más usadas son el Caption y el Checked.

bvLowered = Hundido.   TCheckListBox  (Additional):  La  particularidad  de  este  componente  consiste  en  que  cada  elemento aparece con una caja de selección a su izquierda.     Ejercicios Resueltos     /* Proyecto 1: Este proyecto tiene como finalidad será mostrar los atributos asignados por el usuario a una etiqueta de texto durante  la  ejecución. ItemIndex Permite  conocer  que  botón  está  seleccionado  actualmente  como  para  modificar  dicha selección. BorderWidth Establece la anchura del borde del panel. ItemEnabled Permite activar y desactivar los elementos de lista que convenga. Otras  propiedades  tratadas  en  otros  componentes  pueden  ser  manipuladas  en  el  TPanel.   Propiedad BevelInner  BevelOuter Significado y Se fija el estilo del panel que puede aparecer resaltado o hundido en el formulario.  se  podrá  controlar  el  tipo.TRadioGroup (Standard): C++ Builder dispone de este control para facilitar el tratamiento de grupos de botones de radio. Columns Especifica el número de columnas que existirán en el contenedor. Font y Align. ya que dispone de unas propiedades adicionales a las del control anterior que permiten disponer  los  botones  de  radio  de  una  forma  más  cómoda.     TPanel  (Standard):  Este  componente  tiene  como  uso  servir  de  contenedor  de  otros  componentes  o como barra de estado. Checked Determina el estado actual del control marcado o desmarcado.  así  como  conocer  cuál  de  ellos  está seleccionado consultando una sola propiedad. Esta propiedad evita la construcción de múltiples decisiones con el fin de conocer la selección actual dentro del contenedor. Valores: bvNone = Sin ningún efecto.  tamaño  y color */       .  estilo. de tal forma que es posible marcar o desmarcar como si  se  tratasen  de  controles  TCheckBox  individuales.  Entre  las  propiedades  de  este  componente  se mencionan las siguientes:   Propiedad Significado Items Permite editar las cajas de selección que existirán dentro del control. bvRaised = Resaltado.  tal  es  el  caso  de: Caption.  El  valor  –1  por  defecto  indica  que  no  hay  seleccionado  ninguno  de  los  botones.   Propiedad Significado Items Permite editar los botones de radio que existirán dentro del control.  y  a  través  de  botones.

Contains(Estilo))         Etiqueta­>Font­>Style=Etiqueta­>Font­>Style>>Estilo;  //Eliminamos el estilo     else         Etiqueta­>Font­>Style=Etiqueta­>Font­>Style<<Estilo;  //Añadimos el estilo } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::MasClick(TObject *Sender) {      Etiqueta­>Font­>Size+=2; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::MenosClick(TObject *Sender) {      Etiqueta­>Font­>Size­=2; }     /* Proyecto 2: La finalidad de este proyecto es el de calcular el sueldo neto y deducciones de un empleado.h> */           . Nota: Incluir la cabecera de archivo <fstream.                    //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­ void __fastcall TForm1::BotonArialClick(TObject *Sender) {     Etiqueta­>Font­>Name="Arial"; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::BotonCourierClick(TObject *Sender) {     Etiqueta­>Font­>Name="Courier"; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::BotonNegritaClick(TObject *Sender) {     CambiaEstilo(fsBold); } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::BotonCursivaClick(TObject *Sender) {     CambiaEstilo(fsItalic); } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void TForm1::CambiaEstilo(TFontStyle Estilo) {     if (Etiqueta­>Font­>Style.

                    //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­­­­­­­ void __fastcall TForm1::CalcularClick(TObject *Sender) {      AnsiString n.TXT");      F<<salida.  verifica  ciertas condiciones y al que las cumpla se visualizara una etiqueta indicando el siguiente mensaje: “El estudiante procesado  cumple  con  los  requisitos  mínimos  para  jugar  Basketball”.h.salida;      float sn.c_str( );      F.lph;      n=Nombre­>Text;      p=Pago­>Text;      h=Horas­>Text;      sn=atof(p.  Guardar  todos  los  estudiantes procesados en un archivo */                                       .05;      lph=sn*0.p.sb.c_str( ));      sso=sn*0.sso.c_str( ))*atof(h.01;      sb=sn­(sso+lph);      salida="Calculos de Nomina\n"                 "*****************\n\n"                 "Nombre: "+n+                 "\nSueldo Neto: "+AnsiString(sn)+                 "\nSeguro Social: "+AnsiString(sso)+                 "\nPolitica Habitacional: "+AnsiString(lph)+                 "\nSueldo Básico: "+AnsiString(sb);      ShowMessage(salida);      ofstream F("NOMINA.close( ); }     /*  Proyecto  3:  Presentación  de  un  formulario  que  le  da  entrada  a  los  datos  de  un  aspirante.

c_str( ))<18 && atoi(es.c_str( );      A.es. char &Key) {     //Si no es un dígito numérico no admitir la pulsación de tecla     if ((Key< '0'||Key> '9') && Key!=8)  Key=0; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::VerificarClick(TObject *Sender) {      AnsiString ed.\n";      ofstream A("ADMITIDOS.TXT". char &Key) {     //Si no es un dígito numérico no admitir la pulsación de tecla     if ((Key< '0' ||Key> '9') && Key!=8)  Key=0; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::PesoKeyPress(TObject *Sender.ios::app);      A<<salida.\t"+Peso­>Text+" Kg.  //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­­­­­­ void  __fastcall TForm1::FormCreate(TObject *Sender) {    Guardar­>Visible=false; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­­­­­­ void  __fastcall TForm1::EdadKeyPress(TObject  *Sender.c_str( ))<80)      {          Verificar­>Enabled=false;          Etiqueta8­>Caption="El estudiante procesado cumple con los requisitos mínimos para jugar                                                Basketball";          Guardar­>Visible=true;      } } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::GuardarClick(TObject *Sender) {      AnsiString salida;      salida=Nombre­>Text+"\t"+Edad­>Text+" años\t"+Estatura­>Text+" cm. char &Key) {     //Si  no  es  un  dígito  numérico  no  admitir la pulsación de tecla     if ((Key< '0'||Key> '9') && Key!=8) Key=0; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::EstaturaKeyPress(TObject *Sender.c_str( ))>180 && atof(pe.close( );      Guardar­>Visible=false;      Verificar­>Enabled=true;      Etiqueta8­>Caption="";      Nombre­>Text="";      Edad­>Text="";      Estatura­>Text="";      Peso­>Text=""; } .pe;      ed=Edad­>Text;      es=Estatura­>Text;      pe=Peso­>Text;      if (atoi(ed.

)      {         ShowMessage("El arhivo indicado no existe");      }      Texto­>SetFocus( ); } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::GuardarClick(TObject *Sender) {      try      {         Texto­>Lines­>SaveToFile(NombreArchivo­>Text);      }      catch(..  introducir  texto  o  modificar  el  ya  existente.  Este  control  permitirá  recuperar  un  archivo..  /*  Proyecto  4:  La  finalidad  de  este  proyecto  es  la  utilización  de  un  control  TMemo  diseñando  un  pequeño editor..txt"; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::AbrirClick(TObject *Sender) {      try      {         Texto­>Lines­>LoadFromFile(NombreArchivo­>Text);      }      catch(..  realizar operaciones con el portapapeles y guardar el contenido del control en un archivo */                                   //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::FormCreate(TObject *Sender) {      Texto­>Clear( );      NombreArchivo­>Text="texto1.)      {         ShowMessage("No es posible efectuar la grabación");      }      Texto­>SetFocus( ); } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::NuevoClick(TObject *Sender) {      Texto­>Clear( );      Texto­>SetFocus( ); } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::SalirClick(TObject *Sender) .

{      Close( ); } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::CopiarClick(TObject *Sender) {      Texto­>CopyToClipboard( );      Texto­>SetFocus( ); } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::PegarClick(TObject *Sender) {      Texto­>PasteFromClipboard( );      Texto­>SetFocus( ); } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::CortarClick(TObject *Sender) {      Texto­>CutToClipboard( );      Texto­>SetFocus( ); }     /* Proyecto 5: La idea de este proyecto es mostrar una fotografía diferente en un control como el TImage. y se hace el comentario respectivo de la foto en una etiqueta de texto */                                         //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::FormCreate(TObject *Sender) {     AnsiString Archivo="IP.bmp";     Imagen­>Visible=false;     if (FileExists(Archivo))     {        Imagen­>Visible=true;        Imagen­>Picture­>LoadFromFile(Archivo);     }     else     {        Etiqueta­>Caption="Imagen Principal no Existe";     } } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::Foto1Click(TObject *Sender) { .

bmp";     Imagen­>Visible=false;     if (FileExists(Archivo))     {        Imagen­>Visible=true;        Imagen­>Picture­>LoadFromFile(Archivo);        Etiqueta­>Caption="Un verano muy cercano";     }     else     {        Etiqueta­>Caption="La Fotografía no Existe";     } } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::Foto2Click(TObject *Sender) {     AnsiString Archivo="I2.bmp";     Imagen­>Visible=false;     if (FileExists(Archivo))     {        Imagen­>Visible=true;        Imagen­>Picture­>LoadFromFile(Archivo);        Etiqueta­>Caption="Un cardenal y sus consejeros";     }     else     {        Etiqueta­>Caption="La Fotografía no Existe";     } } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::CerrarClick(TObject *Sender) {     Close( ); }     /* Proyecto 6: Proyecto para seleccionar un determinado tipo de estilo y fuente para el texto introducido por el usuario */               .    AnsiString Archivo="I1.bmp";     Imagen­>Visible=false;     if (FileExists(Archivo))     {        Imagen­>Visible=true;        Imagen­>Picture­>LoadFromFile(Archivo);        Etiqueta­>Caption="Un viajero muy solitario";     }     else     {        Etiqueta­>Caption="La Fotografía no Existe";     } } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::Foto3Click(TObject *Sender) {     AnsiString Archivo="I3.

  Se  debe  editar  la  propiedad  Items  del TcheckListBox.                //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::BAplicarClick(TObject *Sender) {      TFontStyles Estilo; // Conjunto de TFontStyle      // Si está activa la caja de selección      if (CNegrita­>Checked) Estilo << fsBold; // añadir el estilo fsBold      if (CItalica­>Checked) Estilo << fsItalic;      if (CSubrayada­>Checked) Estilo << fsUnderline;      // Pasar el estilo a la etiqueta de texto      Etiqueta­>Font­>Style = Estilo;      // Asignar el tipo de Fuente a la propiedad Name      if (CArial­>Checked) Etiqueta­>Font­>Name = "Arial";      else if (CCourier­>Checked) Etiqueta­>Font­>Name = "Courier";              else Etiqueta­>Font­>Name = "Roman"; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::CTextoChange(TObject *Sender) {      // Cada vez que se modifique el texto en el control pasar a la etiqueta      Etiqueta­>Caption = CTexto­>Text; }     /*  Proyecto  7:  En  este  proyecto  se  usa  el  control  TCheckListBox  y  un  botón  para  validar  los  días  que  se agregarán  al  TListBox  situado  a  la  derecha  del  formulario. asignando como elementos los siete días de la semana */                             //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­­­ void __fastcall TForm1::FormCreate(TObject *Sender) {      CheckListBox1­>ItemEnabled[5]=false;      CheckListBox1­>ItemEnabled[6]=false; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::AdiccionarClick(TObject *Sender) {      Lista­>Items­>Clear( ); //Limpiar la Lista del Lado Derecho      //Recorrer los elemntos seleccionados del lado izquierdo .

     for (int k=0; k<CheckListBox1­>Items­>Count; k++)      {           if (CheckListBox1­>Checked[k])               Lista­>Items­>Add(CheckListBox1­>Items­>Strings[k]);      } }   /*  Proyecto  8:  Este  proyecto  consta  de  dos  formularios  que  se  interrelacionan  entre  sí.  En  el  primer formulario  se  le  solicita  al  usuario  una  serie  de  datos.  luego  en  el  segundo  formulario  se  visualizan  los mismos datos solo para la lectura sobre cuadros de texto */                                 //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::MostrarClick(TObject *Sender) {      Hide( ); //Cerrar el primer formulario      Form2­>Show( );      Form2­>RecApe­>Text=Apellido­>Text;      Form2­>RecNom­>Text=Nombre­>Text;      Form2­>RecFec­>Text=Dia­>Text+"/"+Mes­>Text+"/"+Axo­>Text;      Form2­>RecSex­>Text=Sexo­>Text;      Form2­>RecCiv­>Text=Civil­>Text;      Form2­>RecTel­>Text=Telefono­>Text; }                               //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm2::RegresarClick(TObject *Sender) {     Close( ); // Cerrar el segundo formulario     Form1­>Show( ); }   /*  Proyecto  9:  La finalidad  de  este  proyecto  es  la  introducción  de  los  conceptos  de  botón  por  defecto  y .

botón de cancelación */                         //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::AceptarClick(TObject *Sender) {        CInformacion­>Text = "Aceptar";   } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1:: CancelarClick(TObject *Sender) {        CInformacion­>Text = "Cancelar";  } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1:: SalirClick(TObject *Sender) {        CInformacion­>Text = "Salir";   }     /* Proyecto 10:  El  propósito  de  este  proyecto  es  la  utilización  del  control  TGroupBox.  para  seleccionar  el tamaño y la fuente a través de botones de radio  */                                 // Cada vez que se modifique el texto en el control TEdit actualizar la etiqueta de texto void __fastcall TForm1::CTextoChange(TObject *Sender) {        CResultado­>Caption = CTexto­>Text; } //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void __fastcall TForm1::AplicarClick(TObject *Sender) {       TFontStyles Estilos;               // Conjunto de TFontStyle       // Si está activa la caja de selección CNegrita       if (CNegrita­>Checked)          Estilos << fsBold;                // Añadir el estilo fsBold       if (CItalica­>Checked) .

         Estilos << fsItalic;       if (CSubrayada­>Checked)          Estilos << fsUnderline;       if (CTachada­>Checked)          Estilos << fsStrikeOut;       // Pasar los estilos a la etiqueta de texto       CResultado­>Font­>Style = Estilos;       // Dependiendo del tipo seleccionado asignar el tipo de fuente a Font­>Name una cadena u otra       if (CArial­>Checked)           CResultado­>Font­>Name = "Arial";       else if (CCourier­>Checked)                  CResultado­>Font­>Name = "Courier";              else                 CResultado­>Font­>Name = "Roman";        // Dependiendo del tamaño seleccionado asignar el tamaño de la fuente a Font­>Size el valor adecuado        if (C12­>Checked)           CResultado­>Font­>Size = 12;        else if (C14­>Checked)                   CResultado­>Font­>Size = 14;               else                   CResultado­>Font­>Size = 18; } .