Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UniversidadNacionalExperimentaldelTchira
DepartamentodeIngenieraInformtica
ComputacionIIIngenieraElectrnica(6010)
SanCristbalVenezuela
TemaPertenecientealaUnidadN4:ProgramacinenC++Builder.
Autor:Lcdo.JosFroilnGuerreroPulido
Mayo,2004
UsodelFormulario(TForm)
Laspropiedadesdeunobjetosecaracterizanporserunacombinacinentreunmiembro
de datos y un mtodo. Al tratar una propiedad es como si se tratase de una variable,
obteniendosuvaloromodificndolo.Sinembargo,enmuchasocasionescuandoseaccedeal
valordeunapropiedadseestardemaneraindirectaprovocandolaejecucindeunmtodo,
cuya finalidad es realizar alguna accin segn la modificacin efectuada. Existen ciertas
propiedadesquesolosonaccesiblesduranteeldiseo,mientrasqueotrassolosonaccesibles
durante la ejecucin. Una propiedad adems tambin puede ser un objeto (se identifican
porquealladoizquierdoapareceelsigno+)queasuvezcontienepropiedadesparticulares.
Los eventos son seales internas o externas a la aplicacin que el programa aprovecha para
ejecutarciertobloquedecdigo.Todosloscomponentestieneasociadouneventopordefecto,aunque
inicialmenteesposiblecrearunmtododerespuestadistintoparacadaevento.Aligualqueocurrecon
cualquier funcin, los mtodos de respuesta a eventos tambin pueden recibir parmetros de distintos
tipos.Unparmetrocomnalosmtodosderespuestaaeventos,queserecibesiempreenprimerlugar,
es el llamado Sender, un puntero de tipo TObject. Este parmetro es una referencia a un objeto,
concretamentealobjetoquehadadoorigenalevento.
Amedidaqueunproyectoseinsertenformulariossobreestosseaadencomponentesocontroles
a los cuales se les asocia eventos. Un formulario puede contener objetos tales como: TButton,
TCheckBox,TComboBox,entreotros.ComoseconoceunarchivodeC++secomponealmenosdeun
archivo de cdigo con el programa principal y por defecto con la funcin principal (WinMain), y
opcionalmente de una serie de mdulos a los cuales es posible alojar funciones y clases de
objetos.CuandosedefinenformulariosestossondescendientesenprincipioaunobjetodeltipoTForm.
Es posible tambin crear formularios teniendo como base otros formularios ya existentes, por lo que el
tipobasenoserdirectamenteelobjetoTForm,aunquesteestarsiemprecomoascendienteenalgn
puntodelajerarqua.
Cuandosepartedeunnuevoproyectoobserveelnombreasignadopordefectoalprimermdulo
delproyecto(Unit1.cpp),estemduloincluyelosarchivosdecabeceranecesariosparalatotalidaddelas
aplicacionesWindowsyladefinicininicialdeunnuevotipodeobjeto,TForm1,queesderivadodeltipo
TForm. Ahora, cualquier manipulacin sobre el formulario a nivel de componentes y eventos tiene su
reflejoinmediatoenelcdigodelmduloasociadoalformulario.Enelprogramaprincipalamedidaque
se vayan aadiendo formularios al proyecto se irn insertando lneas con la macro USERFORM,
relacionandotodoslosmdulosdecdigooformulariosconelmduloprincipal.
Al iniciar el desarrollo de una aplicacin en donde existen una serie de formularios de apariencia
comn para la entrada de datos y visualizacin de resultados, esto implica el disear una uniformidad
general entre formularios. La idea es comenzar el proyecto diseando una plantilla que contenga los
aspectosgeneralesdelosformularios,hastaincluircdigodealgunoscomponentes.Creadoydadoun
nombrealformularioqueserviracomoplantilla,estepuedeserusadoabriendoeldepsitodeobjetosy
ubicndosesobrelapginadelproyectodondesepodrseleccionarelformulario.Silaideaesheredar
loscomponentesymtodosdelaplantillaparaunnuevoformulario,sehacenecesariotenerencuenta
quelaplantillaseaheredada(opcininheritdeldepsitodeobjetos),estoimplicaquealmomentodeabrir
elarchivoDFM(inherited)delnuevoformularionoseobservartodalainformacinnecesariaacercade
los componentes, ya que la informacin adicional se encuentra en el archivo DFM del formulario que
acta como plantilla. Lo planteado en este prrafo se conoce como reutilizacin de formularios en un
mismoproyecto.
Unformularioquehanacidoenunadeterminadaaplicacincomobaseparaeldesarrollodeotros
formulariosmsespecializados,puedesertilposteriormenteenotrosproyectos,sobretodosiloquese
busca es tener desarrollos comunes entre las aplicaciones informticas diseadas. Para aadir el
formulariobasealdepsitodeobjetossedebepulsarelbotnderechodelratnyseleccionarlaopcin
AddToRepository.Luegoaparecerunaventanadondesemuestraunalistaconlosnombresdetodos
los formularios del proyecto actual, seleccione el formulario que desea almacenar en el depsito de
objetosyadicioneunttulo,unadescripcin,elnombredelautor,enquefichaopginadeldepsitode
objetossealojarelformulario(escojalafichaFormscomoeldestinomslgicodelformulariobase)y
un icono para su representacin. A partir de este momento se podr usar el formulario siempre que lo
deseeencualquierotraaplicacinoproyecto.
AcontinuacinsedefinenlaspropiedadesmsimportantesdelcomponenteTForm.
Propiedad
Significado
ActiveControl
Cuando un formulario tiene diversos componentes el control lo toma uno de ellos, el cual
estaractivoaliniciarlaaplicacin.
HelpContext
Asociaralformulariounapginadeayuda.Conunvalordistintoaceroypresionandolatecla
F1seactivarelarchivodeayuda.
HelpFile
Definirlaubicacindelarchivodeayuda.
Caption
Definirelnombredelabarradettulodelformulario.
BorderStyle
Cambiarelestiloolaaparienciadelosbordesenelformulario.Valores:
bsSizeable=Permitedurantelaejecucinqueelformulariopuedaserredimensionado.
bsSingle=Permitedurantelaejecucinqueelformularionopuedaserredimensionado.
bsNone=Eliminaelbordedelaventana,labarradettulocontodossuscontroles.
AutoScroll
HorzScrollBar
Editarlabarradedesplazamientohorizontal.
VertScrollBar
Editarlabarradedesplazamientovertical.
PrintScale
Tag
Permitirasociarunvalorenteroalobjetomanipulado.
FormStyle
Definirelestilodelformulario.Valores:
fsNormal=Correspondeaunformularioindependientesinventanasinternas.
fsMDIForm=Elformularioactacomomarcoprincipalparaotrasventanashijas.
fsMDIChild=Elformularioactacomoventanahijadentrodeunformularioprincipal.
fsStayOnTop=Elformulariopermanecesobreotrosinserocultado.
Icon
Cursor
Cambiarelcursorqueseestableceparaelreacalientedelformulario.
Hint
Asignarunacadenadecaracteresparalaetiquetadeayuda.
ShowHint
Visible
Sielvalordelapropiedadesverdadero,elformulariosehacevisible.
Enabled
Color
Seleccionaruncolordefondoparaelformulario.
BorderIcons
Activar/Desactivarlosbotonesdelabarradettulodelformulario.
Position
Cambiarlaposicinyeltamaodelformularioenpantalla.Valores:
poDesigned=Eselvalorpordefecto,elformularioaparecerenlamismaposicinytamao
quesefijduranteeldiseo.
poDefault=Elformulariocambiardeposicinyeltamaodurantecadaejecucin.
poDefaultPosOnly = El tamao del formulario permanece fijo, mientras que la posicin va
cambiandoencadaejecucin.
poDefaultSizeOnly = La posicin del formulario permanece fijo, mientras que el tamao va
cambiandoencadaejecucin.
poScreenCenter = El formulario aparece en el centro de la pantalla conservando el tamao
dadoeneldiseo.
Left
Definelacoordenadahorizontaldelformulario.
Top
Definelacoordenadaverticaldelformulario.
Width
Defineelanchodelformulario.
Heigth
Definelaalturadelformulario.
WindowsState
Determinasielformularioseminimiza,maximiza,osepresentaensuestadonormal.
EntrelosmtodosmsusadosdelcomponenteTFormseespecificanlossiguientes:
Mtodo
Significado
Show
Hacervisibleunformulariodisponindolasobrelasdemsventanasabiertas.
BringToFront
Disponerdeunformulariosobrelosdems,porqueestaactivayocultaenparte.
SendToBack
Enviarelformularioalfondodelapantalla,debajodelasdemsventanas.
Hide
Ocultarunformulariodetalformaquenoseaaccesibleporpartedelusuariodelaaplicacin.
Close
Cerrarunformularioquenosevaautilizarmsenelprograma.
Destroy
Destruirunformularioalcualnosepodraccederasusmiembros.
Obtenerunacopiaimpresadelformulario.
GetFormImage
Capturarunaimagendelformulario,estafuncindevolverunobjetodetipoTBitmap.
EncuantoaloseventosmsusadosdelcomponenteTFormseindicanlossiguientes:
Evento
Significado
OnMouseMove
Este es un evento recibido por un componente a medida que el cursor del mouse se mueve
sobrel.
OnMouseDown
Segeneracuandosepulsacualquieradelosbotonesdelmouse,recibiendoesteeventoaquel
controlqueenesemomentoseencuentrabajoelcursor.
OnMouseUp
Cadavezqueseliberaunbotndelmousesobreelcontrol.
OnClick
Denotaunapulsacindelbotnizquierdodelmousesobrealgncontrol.
OnDblClick
Denotadoblepulsacin(dobleclic)delbotnizquierdodelmousesobrealgncontrol.
OnKeyDown
Seproducealpulsarsecualquiertecla.Tengaencuentaqueelcdigorecibidonoeselcdigo
ASCII,sinoelcdigovirtualdelateclapulsada.
OnKeyUp
Esteeventosegeneraalmomentodeliberarunatecla.
OnKeyPress
Seproducealpulsarsecualquierteclanormal,excluyendoteclasdefuncinoedicin.
OnDragOver
Se produce cuando sobre un determinado control se desplaza un elemento que est siendo
arrastrado.
OnDragDrop
Se produce cuando el elemento es soltado sobre el control, liberando el botn izquierdo del
mouse.
OnCreate
Segeneracuandoelformulariovaasercreado.
OnActivate
Esteeventoseproduceenelmomentoenqueelformularioseconvierteenlaventanaactiva
delentorno.
OnShow
Antesdequeunformulariosehagavisiblesegeneraesteevento.
OnHide
Esteeventoseproducejustoantesdequeelformularioseaocultado.
OnDeactivate
Esteeventosegeneracuandoelformulariosevuelveinactivo,porquesehacambiadoaotra
ventanadelaaplicacin.
OnClose
Cuandounformulariohadejadodesertilenpantalla.
OnDestroy
OnPaint
Esteeventosegeneracadavezqueelformularionecesitaserdibujadoenpantalla.
OnResize
Cadavezqueeltamaodeunformularioseamodificadodurantelaejecucin.
Algunosdeloseventostratadosenlatablaanteriorsontilesparaelcomportamiento,desempeou
ejecucindeotroscomponentesqueacontinuacinseexplicaran.
ComponentesReceptoresdeTextodeUsomsFrecuente
TLabel(Standar):Estecontrolpermitemostrartextoestticoenelformulario,fijandosuposicin,color,
tipo de letra y tamao. Suele utilizarse este texto para etiquetar otro control. Al no poseer formato de
ventana no puede recibir entradas desde el teclado. A continuacin se definen las propiedades ms
importantesdelcomponenteTLabel.
Propiedad
Significado
Name
Tomaelnombrequetendrelcomponentealmomentodehacerreferenciadeestedurantela
programacin.
Caption
Tomaelvalorquesemostrarenlaetiquetadetexto.
Visible
Sielvalordelapropiedadesverdadero,laetiquetasehacevisible.
LeftyTop
Contienelascoordenadashorizontalyverticaldelcomponente.
WidthyHeight
Contieneelanchoyelaltodelcomponente.
AutoSize
Align
Controlalaalineacindelcomponenteenelcontenedorqueseencuentre.Valores:
alNone=Conservalaposicinydimensionesoriginales.
alTop=Margensuperiordelcontenedor.
alBottom=Margeninferiordelcontenedor.
alLeft=Margenizquierdodelcontenedor.
alRight=Margenderechodelcontenedor.
alClient=Todoelespaciodisponibleenelcontenedor.
Alignment
Permitealineareltextoalaizquierda,derechaocentrado.
Font
Permitemodificarlosatributosdeltexto(Fuente,Color,Tamao,EstiloyEfectos).
Color
Estableceuncolordefondoparaelcomponente.
Transparent
Sielvalordelapropiedadesverdadero,provocaquelapropiedadnotengaefectoalguno.
FocusControl
PermiteseleccionardelalistaadjuntaelnombredelcomponenteTEditquecorresponda.
Otraspropiedadestratadasenelapartereferidoalformulario,puedensermanipuladasenelTLabel,taleselcaso
de:Hint,ShowHint,Enabled,TagyCursor.
EntrelosmtodosmsusadosdelcomponenteTLabelseespecificanlossiguientes:
Mtodo
Significado
Contains
Determinasialgunosvaloresconstantesseencuentranactivosonoenunapropiedad.
SetBounds
Otrosmtodostratadosenelapartereferidoalformulario,puedensermanipuladosenelTlabel,taleselcasode:
BringToFront,SendToBack,ShowyHide.
TEdit(Standar):Estecontrolpermitelaentradadedatosporteclado.Esuncontroldetextodesplegable
deunasolalnea.Seusapararecuperareltextoquelosusuariosescriben,pudiendoservirtambinpara
queelusuariovisualiceeltextoqueelcontrolrecibe,porejemploelvalordeuncampodeunatablade
una base de datos con la que est asociado. Muchas de las propiedades de este componente son
comunesalcomponenteTLabel.
Propiedad
Significado
Name
Tomaelnombrequetendrelcomponentealmomentodehacerreferenciadeestedurantela
programacin.
Text
Tomaelvalorquesemostrarenelcuadrodetextoinicialmente.
Enabled
Sielvalordelapropiedadesverdadero,elcuadrodetextoestaractivo.
Font
Permitemodificarlosatributosdeltexto(Fuente,Color,Tamao,EstiloyEfectos).
Color
Estableceuncolordefondoparaelcomponente.
MaxLenght
Estableceelmximonmerodecaracteresquesedeseanadmitirenelcontrol.Inicialmente
estapropiedadtieneelvalordeceroindicandoqueenprincipionoexisteunlmite.
CharCase
Permiteconvertirlasletrasintroducidasamaysculasoaminsculas.Valores:
ecNormal=Noserealizaconversinalguna.
ecLowerCase=Todaslasmaysculasaminsculas.
ecUpperCase=Todaslasminsculasamaysculas.
Modified
Determinasielcontenidodeunaceldahasidomodificadoono.Elvalordelapropiedadpor
defecto es falso, por lo cual el usuario al momento de introducir cualquier carcter, la
propiedadtomarelvalordeverdadero.
ReadOnly
Elcontenidodelcampodetextoserdeslolectura,nomodificableporpartedelusuario.
PasswordChar
SelStart
Permiteconocerlaposicinapartirdelacualsehamarcadounaporcindetexto.
SelLenght
Permiteconocerlalongituddeltextomarcadoenelcomponente.
SelText
Sirveparaobtenereltextoqueseencuentraseleccionadoenelcontrolcomoparacambiarlo
porotro.
HideSelection
Sielvalordelapropiedadesverdadero,ocultalaseleccindeltextocuandosaledelcontrol.
AutoSelect
Si el valor de la propiedad es verdadero, indica al control que cada vez que se active
seleccionetodoelcontenidootexto.
TabStop
Determinasielcomponenteseactivemediantelapulsacindelateclatabulador.
TabOrder
Permite establecer un valor numrico para establecer el orden en que se irn activando los
distintoscomponentesdelformulario.
Otras propiedades que pueden ser tratadas en este componente son: BorderStyle, Left, Top, Width,
Height,AutoSize,Hint,ShowHint,TagyCursor.
El control TEdit cuenta con un men contextual especfico, el cual no se tiene que crear, ni
gestionar. Otro aspecto importante a destacar es que C++ Builder nos permite establecer el orden de
accesoaloscomponentesdeunaformamscmoda,paraellosetienelaopcinTabOrderdelmen
contextualdelformulario,obienelegiresamismaopcinEditdelmenprincipal.
Mtodo
Significado
SelectAll
Seleccionatodoeltextoexistenteenelcontrol.
ClearSelection
Eliminaeltextoseleccionadoenesemomentoenelcontrol.
CopyToClipboard
Copiareltextoseleccionadoenelportapapeles.
CutToClipboard
Copiaryborrareltextoseleccionadodelcomponenteenelportapapeles.
PasteFromClipboard
Tomareltextoexistenteenelportapapeleseinsertarloenlaposicinqueindiqueelcursoren
elcontrol.
Otrosmtodosquepuedenserutilizadosenestecomponenteson:Show,Hide,BringToFrontySendToBack.
Entreloseventosmssignificativosdeestecontrolseespecificanlossiguientes:
Evento
Significado
OnEnter
OnExit
Segeneraenelmomentoenqueelcuadrodetextodejadeseractivoenelformulario.
OnChange
Cadavezqueserealiceunamodificacinenelcontenidodelcampodetexto,insertandoun
nuevocarcteroborrandopartedelcontenido.
TMaskEdit (Additional): Con este control se puede establecer una mscara de control. Este
componentesirveparaimplementaruncontrolTEditconunformatodeentradagenrico.Dichamscara
esunacadenadecaracteresenlacualalgunostienenunsignificadoespecial.Estacadenatendrque
asignarsealapropiedadEditMask.Durantelaejecucin,lamscaraquehayamosaplicadocondicionar
tantolaintroduccindedatosenelcampocomolavisualizacindestos.Unamscaraconstadetres
camposseparadosporunpuntoycoma.Elprimercampoeslamscaradeentrada.Elsegundocampo
es el carcter que determina si los caracteres de la mscara se deben guardar junto con los datos. El
terceroeselcarcterdelamscarausadopararepresentarloscaracteresquenocontienelamscarade
validacin.
Caracter
Significado
Requierelaentradadeuncarcter.
Permitelaentradadeuncarcter.
Requierelaentradadeuncarcteralfanumrico.
Permitelaentradadeuncarcteralfanumrico.
Requierelaentradadeuncarcteralfabtico.
Permitelaentradadeuncarcteralfabtico.
Requierelaentradadeuncarcternumrico.
Permitelaentradadeuncarcternumrico.
Permitelaentradadeuncarcternumricoodesigno.
<
Loscaracteressiguientesaparecernenmaysculas.
>
Loscaracteressiguientesaparecernenminsculas.
<>
Desactivalafuncindelosdoscaracteresanteriores.
Interpretaelcarctersiguientecomonoespecial.
Representaunespacioenblanco.
Separadordehorasyminutos.
Separadordefechas.
Separadorinternodelamscara.
AtravsdelapropiedadEditMaskpermiteactivarlaventanadeedicindelamscaraqueactuar
en el campo de texto. Otras propiedades que pueden ser tratadas en este componente son:
BorderStyle,Left,Top,Width,Height,AutoSize,Hint,ShowHint,Tag,CursoryFont.
TMemo (Standard): Este control es muy similar al control TEdit, con la diferencia de que es posible
trabajarconunamayorextensindetexto,queademspuedeestardistribuidoenmltipleslneas.Las
propiedadesdeestecontrolcoincidenensumayorparteconlasdelcontrolTEdit.
Propiedad
Significado
Lines
WordWrap
ScrollBars
WantTabs
Sielvalordelapropiedadesverdadero,sepuedehacerusodelateclatabulador.
WantReturns
Sielvalordelapropiedadesverdadero,sepuedehacerusodelateclaEnteroIntro.
EntrelosmtodosmsusadosdelcomponenteTMemosenombranlossiguientes:
Mtodo
Significado
Add
Permiteaadirtextoalfinaldelcontenidoactualexistenteenelcontrol.
Insert
Permiteinsertartextoenelcontrolenunaciertaposicin.
Delete
Permiteeliminartextoexistenteenelcontrol.
Move
Permitemoverunadeterminadalneadeunaposicinaotra.
Exchange
Intercambialaposicindedoscadenasdetexto.
LoadFromFile
Capturaeltextocontenidoenelcontrolparaunarchivodetexto.
SaveToFile
Permiteguardarelcontenidoactualdelcontrolenunarchivodetexto.
Unadelasgrandeslimitacionesdelcontrolesquenopermiteusaratributosdiferentesparaeltexto,
comotamaosoestilos,nidisponedecapacidadalgunadealineacin,sangradodeprrafos,etc.
TListBox(Standard):Estecontrolescapazdecontenercadenasdecaracterescadaunadelascuales
aparececomoelementosdelalista.Encasodequeelnmerodeelementosexcedelasdimensionesde
lalista,enelcontrolaparecenlasbarrasdedesplazamiento.
Propiedad
Significado
Items
Permiteeditarloselementosquecontendrlalista.
Columns
Especificaelnmerodecolumnasqueexistirnenelcontenedor.
Sorted
Sielvalordelapropiedadesverdadero,muestraloselementosordenadosalfabticamente.
IntegralHeight
ItemIndex
Permite conocer que elemento est seleccionado actualmente en la lista. El valor 1 por
defectoindicaquenohayningnelementoseleccionado.
MultiSelect
SelCount
Conocercuantoselementoshaymarcadosactualmente.
Selected
Conocerqueelementosestnmarcadosdelalista.
Style
Permitepresentarotrosobjetos,comoelementosgrficos.Valores:
ibStandard=Todosloselementossoncadenas.
ibOwnerDrawFixed=Cadaelementoesdistintoperoconunaalturafija.
ibOwnerDrawVariable=Cadaelementotieneunaalturavariable.
ItemHeight
Especificalaalturaenpuntosdeloselementosdelalista.
Canvas
Permitedibujarelelementosobrelasuperficiedelalista.
PormediodelmtodoAddporelqueseconsigueincluirlosprimeroselementosdelalistacuando
se crea el formulario. Tambin intervenir el usuario en tiempo de ejecucin de manera que los que l
escribaenuncontrol,TEditporejemplo,seasignecomounnuevoelementodelalista.
TComboBox(Standard):EstecontrolesunacombinacindelTListBoxyTEdit,alqueseconocecomo
listacombinada.Altratarsedeuncontrolcombinadoquetienefuncionesdeuncampodeedicinydeuna
lista,laspropiedadesdeunalistacombinadasonunconjuntoqueresultadelaunindelaspropiedades
delosdoscontrolesantesmencionados,contandoconalgunaspropiedadesadicionalesespecificas.
Propiedad
Significado
Style
Permiteelegirelestiloadecuadodelcontrol.Valores:
csDropDown=Listaconcampodeedicinasociado.
csSimple=Campodeedicinsinlista.
csDropDownList=Listasincampodeedicin.
csOwnerDrawFixed=Elementosdistintosconalturafija.
csOwnerDrawVariable=Elementosdistintosconalturavariable.
ItemIndex
Permite conocer que elemento est seleccionado actualmente en la lista. El valor 1 por
defectoindicaquenohayningnelementoseleccionado.
Text
Obtenereltextodelelementoseleccionado.
DropDownCount
Especificaelnmeromximodeelementosquesevisualizaranenlalistadesplegable.
En una lista combinada no es posible seleccionar mltiples elementos, por ello no existen las
propiedadesMultiSelect,ExtendedSelect,SelectCountySelected.
ComponentesparaIniciarrdenes(Botones)
TButton(Standar):Estecontrolderearectangularquecontieneuntextoensuinterioryquealpulsarlo
llevaacabounadeterminadaaccin.
Propiedad
Significado
Caption
Tomaeltextoquesemostrarenelbotn,asuvezpuedecontarconuncarcterprecedido
de un &. Este carcter que aparece en el botn subrayado y haciendo uso de la tecla Alt
permiteactivarypulsarelbotnenunsolopaso.
DefaultyCancel
Si el valor de la propiedad es verdadero, provoca que un cierto botn acte como botn por
defectoodecancelacin.
ModalResult
Uncuadrodedilogomodalsecaracterizapornopermitirelaccesoaningunaotraventanade
laaplicacinmientraslseencuentreabierto,yalcerrarlogeneralmentesedevuelveunvalor
indicandolacausadelasalida.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, tal es el caso de: Name, Font, Enabled, Tag y
Cursor.
TBitBtn (Additional): Este es un tipo de botn que incorpora un grfico en su interior de manera
adicionalaltexto.Estebotnesmsintuitivoyaqueelgrficoofreceunaindicacinqueenlamayorade
loscasos,haceinnecesarioeltexto.Estecomponentecuentaconalgunaspropiedadesadicionalesque
permitan mostrar una pequea imagen en el botn. Entre las propiedades de este componente se
mencionanlassiguientes:
Propiedad
Significado
Glyph
Permiteasociarunaimagenalbotn,paraellosedeberecuperarlaimagendesdeelarchivo
dondeseencuentre.
NumGlyphs
Margin
Determinaelnmerodepuntosdeseparacinentreelbordedelbotnyelgrfico.
Layout
Determinalaposicindelgrficoenelinteriordelbotn.Valores:
blGlyphLeft=Alaizquierda.
blGlyphTop=Enlapartesuperiorcentral.
blGlyphRight=Aladerecha.
blGlyphBottom=Enlaparteinferiorcentral.
Spacing
Determinaelnmerodepuntosdeseparacinentreelbordedelbotnyeltexto.
Kind
Seleccindeltipodebotncongrficopredefinidoporlapropiedadencuestin.
OtraspropiedadestratadasenelapartereferidoalTButton,puedensermanipuladasenelTBitBtn,taleselcaso
de:Name,Caption,Font,ModalResult,Default,Cancel,Enabled,TagyCursor.
TSpeedButton(Additional):Estecomponenteesunbotnquecontienesoloungrficoensuinterior,
sintexto,yparaserutilizadodeformaconjuntaconotrosbotonesdelmismotipo.
Propiedad
Significado
GroupIndex
Permitecreargruposdebotonesquefuncionarndeformaconjunta,detalformaquealpulsar
unodeelloslosdemssemuestrenliberados.Paracrearungrupotendremosquemodificara
unvalordistintoacero,estevalordebesermismoparatodoslosbotonesqueformarnparte
delgrupo.
Down
Sielvalordelapropiedadesverdadero,elbotnseencuentrapulsado.
AllowAllUp
Sielvalordelapropiedadesverdadero,seconsiguequetodoslosbotonesdelgrupopueden
estarliberadosyparacambiarsuestado,deliberadosapulsadosoviceversa.
Flat
Sielvalordelapropiedadesfalso,causaquelosbotonesaparezcanresaltadosenlabarra,
con un recuadro alrededor. Cuando el valor es verdadero, los botones sern planos
destacndosesobrelosdemssolocuandoelcursordelmousepasesobreellos.
OtraspropiedadestratadasenelapartereferidoalTBitBtn,puedensermanipuladasenelTSpeedButton,talesel
casode:Glyph,NumGlyphs,Margin,Layout,Hint,ShowHintySpacing.
TToolBar (Win32): Este componente tiene como uso servir de contenedor de botones del tipo
TToolButton.Alinsertaruncomponentedeestetipoenelformulariolonicoqueseobservarunrea
rectangularocupandolapartesuperiordelaventana.
Propiedad
ButtonHeight
ButtonWidth
Significado
y Los botones existentes en la barra tendrn las mismas dimensiones (alto y ancho). Estas
dimensionesdebernestaracordeconeltamaodelasimgenesquesevayanamostraren
elinteriordelosbotones.
Images
Contieneelnombredelasimgenesquerepresentanalosbotonesensuestadonormal.
DisabledImages
Contiene el nombre de las imgenes que representan a los botones cuando esten
desactivados.
HotImages
Contieneelnombredelasimgenesqueseusarnalmomentodesituarelcursorsobrelos
botones,hacindolesaparecerdestacadossobrelosdems.
Otras propiedades tratadas en otros componentes pueden ser manipuladas en el TToolBar, tal es el caso de:
Align,AutoSize,Color,Hint,ShowHintyTransparent.
Puestoqueenlabarra(TToolBar)existenmltiplesbotones,sernecesariodisponerdemltiples
imgenesencadaestado(normal,desactivadoocaliente)endistintosTImageList.Desplegandoelmen
contextual del componente, aparecen dos opciones: New Button y New Separator, que son las que
facilitan en la barra de un nuevo botn o un separador, respectivamente. Cada uno de los botones
insertadosenlabarraesuncomponenteTToolButtonquecuentaconsuspropiedadesyeventos.
Propiedad
Significado
Caption
Permiteestablecerelttuloasociadoalbotn.
ImageIndex
Indicaelndicedelaimagenquesehademostrarenelinteriordelbotn.
Style
Indicaeltipodeestiloquevaacontenerelbotn.Valores:
tbsButton=Unbotnnormal.
tbsCheck=Botnquepuedeestaronopulsado.
tbsDivider=LneaDivisoria.
tbsDropDown=Botnconunmendesplegable.
tbsSeparator=Espaciodeseparacin.
PopupMenu
Nombre del men que estar asociado con el estilo tbsDropDown. El men deber estar
diseadoatravsdelcomponenteTPopupMenuyserunmenqueseactivarpormediodel
botnderechodelmouse.
Otraspropiedadespuedensertratadasenestecomponente,taleselcasode:Down,Hint,ShowHintyCursor.
TImageList (Win32): Este componente es un contenedor de imgenes del mismo tamao (grupos de
iconosomapadebits),cadaunadelascualespuedeserreferenciadaporsundice,cuyosnombresse
asignarnalaspropiedadesImages,DisabledImages,HotImages.Enlamayoradelasocasioneseste
componenteserusadoenconjuncinconunTToolBar,TTreeViewoTListView.
Propiedad
Significado
AllocBy
Incrementocadavezqueseanecesarioaumentarelnmerodeimgenes.
BkColor
Colordefondoautilizaraldibujarunaimagen.
BlendColor
Colordecombinacin.
Count
Nmerodeimgenescontenidas.
DrawingStyle
Estiloparaeldibujodeunaimagen.
Height
Alturadelasimgenes.
ImageType
Tipodeimagenautilizarparadibujar.
Masked
Indicasilaimgenessontransparentesono.
ShareImages
Indicasilasimgenessoncompartidasconotrocontrol.
Width
Anchuradelasimgenes.
Todas las imgenes contenidas en este componente deben tener exactamente el mismo tamao, as para
imgenesdediferentesdimensionessetendrqueusarvarioscomponentesTImageList.
Tras insertar el componente haga doble clic sobre l, luego aparecer una ventana en donde se
podriraadiendoimgenesmedianteelbotnAdd,estableciendoadicionalmenteparmetroscomoel
color que sea transparente, si la imagen se ajusta a las dimensiones por defecto, se corta o aparece
centrada.
ComponentesdeSeleccindeOpcionesoValores
TCheckBox (Standard): Este control permite al usuario activar o desactivar una cierta opcin sin
necesidaddeescribirnada,bastarconrealizarunapulsacinsobreelcontrol.Medianteestecontrolse
facilitalaseleccindemltiplesopciones.Entrelaspropiedadesdeestecomponentesemencionanlas
siguientes:
Propiedad
Significado
Caption
Permiteasignarelttuloqueaparecerjuntoalacajadeseleccin.
Checked
Determina el estado actual del control. Habitualmente este control puede aparecer en dos
estadosdistintos:marcado(true)osinmarcar(false).
AllowGrayed
Sielvalordelapropiedadesverdadero,elcontrolnoaparecernimarcadonisinmarcar,un
estadoindeterminado.
State
Tambindeterminaelestadoactualdelcontrol.Valores:
cbChecked=Marcado.
cbUnchecked=Desmarcado.
cbGrayed=Indeterminado.
TRadioButton(Standard):Estecontrolpermitealusuarioactivarodesactivarunaciertaopcin,bastar
con elegir cualquier opcin desmarcando el botn de radio que se encontraba marcado en dicho
momento. Mediante este control se facilita la seleccin de una sola opcin en un determinado instante.
LaspropiedadesmsusadassonelCaptionyelChecked.
TGroupBox(Standard):Lafinalidaddeestecomponenteesactuarcomopadreocontenedordeotros
componentes,agrupndolosynodisponedeningunapropiedadenespecial.Alinsertarelcomponenteen
el formulario, ste aparecer como un recuadro, con un ttulo en la parte superior izquierda (Ttulo que
podr ser modificado a travs de la propiedad Caption). Aunque los controles que normalmente se
agrupansonlosbotonesderadio,medianteestecomponentesepuedenagruparcualquierconjuntode
controles,sinimportarsutipo.
Enelcasodedisponerdeundeterminadocomponenteenelformularioylodesplacemosalinterior
del TGroupBox, lo nico que realmente hecho ser modificar su posicin, pero realmente dicho
componentenoestarcontenidoenelgrupo.
LaspropiedadesParentFont,ParentColoryParentShowHinttomanelvalordeverdadero,indicando
asquelosvaloresdelaspropiedadesFont,ColoryShowHintdeundeterminadocomponenteinsertado
serntomadosdelcontenedorTGroupBox.
TRadioGroup(Standard):C++Builderdisponedeestecontrolparafacilitareltratamientodegruposde
botonesderadio,yaquedisponedeunaspropiedadesadicionalesalasdelcontrolanteriorquepermiten
disponer los botones de radio de una forma ms cmoda, as como conocer cul de ellos est
seleccionadoconsultandounasolapropiedad.
Propiedad
Significado
Items
Permiteeditarlosbotonesderadioqueexistirndentrodelcontrol.
Columns
Especificaelnmerodecolumnasqueexistirnenelcontenedor.
ItemIndex
Permite conocer que botn est seleccionado actualmente como para modificar dicha
seleccin. El valor 1 por defecto indica que no hay seleccionado ninguno de los botones.
Estapropiedadevitalaconstruccindemltiplesdecisionesconelfindeconocerlaseleccin
actualdentrodelcontenedor.
Propiedad
Significado
Items
Permiteeditarlascajasdeseleccinqueexistirndentrodelcontrol.
Checked
Determinaelestadoactualdelcontrolmarcadoodesmarcado.
ItemEnabled
Permiteactivarydesactivarloselementosdelistaqueconvenga.
TPanel (Standard): Este componente tiene como uso servir de contenedor de otros componentes o
comobarradeestado.
Propiedad
BevelInner
BevelOuter
Significado
y Sefijaelestilodelpanelquepuedeaparecerresaltadoohundidoenelformulario.Valores:
bvNone=Sinningnefecto.
bvLowered=Hundido.
bvRaised=Resaltado.
BorderWidth
Establecelaanchuradelbordedelpanel.
Otras propiedades tratadas en otros componentes pueden ser manipuladas en el TPanel, tal es el caso de:
Caption,FontyAlign.
EjerciciosResueltos
/*Proyecto1:Esteproyectotienecomofinalidadsermostrarlosatributosasignadosporelusuarioauna
etiquetadetextodurantelaejecucin, y a travs de botones, se podr controlar el tipo, estilo, tamao y
color*/
//
void__fastcallTForm1::BotonArialClick(TObject*Sender)
{
Etiqueta>Font>Name="Arial"
}
//
void__fastcallTForm1::BotonCourierClick(TObject*Sender)
{
Etiqueta>Font>Name="Courier"
}
//
void__fastcallTForm1::BotonNegritaClick(TObject*Sender)
{
CambiaEstilo(fsBold)
}
//
void__fastcallTForm1::BotonCursivaClick(TObject*Sender)
{
CambiaEstilo(fsItalic)
}
//
voidTForm1::CambiaEstilo(TFontStyleEstilo)
{
if(Etiqueta>Font>Style.Contains(Estilo))
Etiqueta>Font>Style=Etiqueta>Font>Style>>Estilo//Eliminamoselestilo
else
Etiqueta>Font>Style=Etiqueta>Font>Style<<Estilo//Aadimoselestilo
}
//
void__fastcallTForm1::MasClick(TObject*Sender)
{
Etiqueta>Font>Size+=2
}
//
void__fastcallTForm1::MenosClick(TObject*Sender)
{
Etiqueta>Font>Size=2
}
/*Proyecto2:Lafinalidaddeesteproyectoeseldecalcularelsueldonetoydeduccionesdeunempleado.
Nota:Incluirlacabeceradearchivo<fstream.h>*/
//
void__fastcall
TForm1::CalcularClick(TObject*Sender)
{
AnsiStringn,p,h,salida
floatsn,sb,sso,lph
n=Nombre>Text
p=Pago>Text
h=Horas>Text
sn=atof(p.c_str())*atof(h.c_str())
sso=sn*0.05
lph=sn*0.01
sb=sn(sso+lph)
salida="CalculosdeNomina\n"
"*****************\n\n"
"Nombre:"+n+
"\nSueldoNeto:"+AnsiString(sn)+
"\nSeguroSocial:"+AnsiString(sso)+
"\nPoliticaHabitacional:"+AnsiString(lph)+
"\nSueldoBsico:"+AnsiString(sb)
ShowMessage(salida)
ofstreamF("NOMINA.TXT")
F<<salida.c_str()
F.close()
}
/* Proyecto 3: Presentacin de un formulario que le da entrada a los datos de un aspirante, verifica ciertas
condicionesyalquelascumplasevisualizaraunaetiquetaindicandoelsiguientemensaje:Elestudiante
procesado cumple con los requisitos mnimos para jugar Basketball. Guardar todos los estudiantes
procesadosenunarchivo*/
//
void
__fastcall
TForm1::FormCreate(TObject*Sender)
{
Guardar>Visible=false
}
//
void
__fastcall
TForm1::EdadKeyPress(TObject *Sender,
char&Key)
{
//Si no es un dgito numrico no admitir
lapulsacindetecla
if((Key<'0'||Key>'9')&&Key!=8)Key=0
}
//
void__fastcallTForm1::EstaturaKeyPress(TObject*Sender,char&Key)
{
//Sinoesundgitonumriconoadmitirlapulsacindetecla
if((Key<'0'||Key>'9')&&Key!=8)Key=0
}
//
void__fastcallTForm1::PesoKeyPress(TObject*Sender,char&Key)
{
//Sinoesundgitonumriconoadmitirlapulsacindetecla
if((Key<'0'||Key>'9')&&Key!=8)Key=0
}
//
void__fastcallTForm1::VerificarClick(TObject*Sender)
{
AnsiStringed,es,pe
ed=Edad>Text
es=Estatura>Text
pe=Peso>Text
if(atoi(ed.c_str())<18&&atoi(es.c_str())>180&&atof(pe.c_str())<80)
{
Verificar>Enabled=false
Etiqueta8>Caption="Elestudianteprocesadocumpleconlosrequisitosmnimosparajugar
Basketball"
Guardar>Visible=true
}
}
//
void__fastcallTForm1::GuardarClick(TObject*Sender)
{
AnsiStringsalida
salida=Nombre>Text+"\t"+Edad>Text+"aos\t"+Estatura>Text+"cm.\t"+Peso>Text+"Kg.\n"
ofstreamA("ADMITIDOS.TXT",ios::app)
A<<salida.c_str()
A.close()
Guardar>Visible=false
Verificar>Enabled=true
Etiqueta8>Caption=""
Nombre>Text=""
Edad>Text=""
Estatura>Text=""
Peso>Text=""
}
/* Proyecto 4: La finalidad de este proyecto es la utilizacin de un control TMemo diseando un pequeo
editor. Este control permitir recuperar un archivo, introducir texto o modificar el ya existente, realizar
operacionesconelportapapelesyguardarelcontenidodelcontrolenunarchivo*/
//
void__fastcallTForm1::FormCreate(TObject*Sender)
{
Texto>Clear()
NombreArchivo>Text="texto1.txt"
}
//
void__fastcallTForm1::AbrirClick(TObject*Sender)
{
try
{
Texto>Lines>LoadFromFile(NombreArchivo>Text)
}
catch(...)
{
ShowMessage("Elarhivoindicadonoexiste")
}
Texto>SetFocus()
}
//
void__fastcallTForm1::GuardarClick(TObject*Sender)
{
try
{
Texto>Lines>SaveToFile(NombreArchivo>Text)
}
catch(...)
{
ShowMessage("Noesposibleefectuarlagrabacin")
}
Texto>SetFocus()
}
//
void__fastcallTForm1::NuevoClick(TObject*Sender)
{
Texto>Clear()
Texto>SetFocus()
}
//
void__fastcallTForm1::SalirClick(TObject*Sender)
{
Close()
}
//
void__fastcallTForm1::CopiarClick(TObject*Sender)
{
Texto>CopyToClipboard()
Texto>SetFocus()
}
//
void__fastcallTForm1::PegarClick(TObject*Sender)
{
Texto>PasteFromClipboard()
Texto>SetFocus()
}
//
void__fastcallTForm1::CortarClick(TObject*Sender)
{
Texto>CutToClipboard()
Texto>SetFocus()
}
/*Proyecto5:LaideadeesteproyectoesmostrarunafotografadiferenteenuncontrolcomoelTImage,y
sehaceelcomentariorespectivodelafotoenunaetiquetadetexto*/
//
void__fastcallTForm1::FormCreate(TObject*Sender)
{
AnsiStringArchivo="IP.bmp"
Imagen>Visible=false
if(FileExists(Archivo))
{
Imagen>Visible=true
Imagen>Picture>LoadFromFile(Archivo)
}
else
{
Etiqueta>Caption="ImagenPrincipalnoExiste"
}
}
//
void__fastcallTForm1::Foto1Click(TObject*Sender)
{
AnsiStringArchivo="I1.bmp"
Imagen>Visible=false
if(FileExists(Archivo))
{
Imagen>Visible=true
Imagen>Picture>LoadFromFile(Archivo)
Etiqueta>Caption="Unveranomuycercano"
}
else
{
Etiqueta>Caption="LaFotografanoExiste"
}
}
//
void__fastcallTForm1::Foto2Click(TObject*Sender)
{
AnsiStringArchivo="I2.bmp"
Imagen>Visible=false
if(FileExists(Archivo))
{
Imagen>Visible=true
Imagen>Picture>LoadFromFile(Archivo)
Etiqueta>Caption="Unviajeromuysolitario"
}
else
{
Etiqueta>Caption="LaFotografanoExiste"
}
}
//
void__fastcallTForm1::Foto3Click(TObject*Sender)
{
AnsiStringArchivo="I3.bmp"
Imagen>Visible=false
if(FileExists(Archivo))
{
Imagen>Visible=true
Imagen>Picture>LoadFromFile(Archivo)
Etiqueta>Caption="Uncardenalysusconsejeros"
}
else
{
Etiqueta>Caption="LaFotografanoExiste"
}
}
//
void__fastcallTForm1::CerrarClick(TObject*Sender)
{
Close()
}
/*Proyecto6:Proyectoparaseleccionarundeterminadotipodeestiloyfuenteparaeltextointroducidopor
elusuario*/
//
void__fastcallTForm1::BAplicarClick(TObject*Sender)
{
TFontStylesEstilo//ConjuntodeTFontStyle
//Siestactivalacajadeseleccin
if(CNegrita>Checked)Estilo<<fsBold//aadirelestilofsBold
if(CItalica>Checked)Estilo<<fsItalic
if(CSubrayada>Checked)Estilo<<fsUnderline
//Pasarelestiloalaetiquetadetexto
Etiqueta>Font>Style=Estilo
//AsignareltipodeFuentealapropiedadName
if(CArial>Checked)Etiqueta>Font>Name="Arial"
elseif(CCourier>Checked)Etiqueta>Font>Name="Courier"
elseEtiqueta>Font>Name="Roman"
}
//
void__fastcallTForm1::CTextoChange(TObject*Sender)
{
//Cadavezquesemodifiqueeltextoenelcontrolpasaralaetiqueta
Etiqueta>Caption=CTexto>Text
}
/* Proyecto 7:En este proyecto se usa el control TCheckListBox y un botn para validar los das que se
agregarn al TListBox situado a la derecha del formulario. Se debe editar la propiedad Items del
TcheckListBox,asignandocomoelementoslossietedasdelasemana*/
//
void__fastcallTForm1::FormCreate(TObject*Sender)
{
CheckListBox1>ItemEnabled[5]=false
CheckListBox1>ItemEnabled[6]=false
}
//
void__fastcallTForm1::AdiccionarClick(TObject*Sender)
{
Lista>Items>Clear()//LimpiarlaListadelLadoDerecho
//Recorrerloselemntosseleccionadosdelladoizquierdo
for(intk=0k<CheckListBox1>Items>Countk++)
{
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
mismosdatossoloparalalecturasobrecuadrosdetexto*/
//
void__fastcallTForm1::MostrarClick(TObject*Sender)
{
Hide()//Cerrarelprimerformulario
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__fastcallTForm2::RegresarClick(TObject*Sender)
{
Close()//Cerrarelsegundoformulario
Form1>Show()
}
/* Proyecto 9:Lafinalidadde este proyecto es la introduccin de los conceptos de botn por defecto y
botndecancelacin*/
//
void__fastcallTForm1::AceptarClick(TObject*Sender)
{
CInformacion>Text="Aceptar"
}
//
void__fastcallTForm1::CancelarClick(TObject*Sender)
{
CInformacion>Text="Cancelar"
}
//
void__fastcallTForm1::SalirClick(TObject*Sender)
{
CInformacion>Text="Salir"
}
/*Proyecto10:El propsito de este proyecto es la utilizacin del control TGroupBox, para seleccionar el
tamaoylafuenteatravsdebotonesderadio*/
//CadavezquesemodifiqueeltextoenelcontrolTEditactualizarlaetiquetadetexto
void__fastcallTForm1::CTextoChange(TObject*Sender)
{
CResultado>Caption=CTexto>Text
}
//
void__fastcallTForm1::AplicarClick(TObject*Sender)
{
TFontStylesEstilos//ConjuntodeTFontStyle
//SiestactivalacajadeseleccinCNegrita
if(CNegrita>Checked)
Estilos<<fsBold//AadirelestilofsBold
if(CItalica>Checked)
Estilos<<fsItalic
if(CSubrayada>Checked)
Estilos<<fsUnderline
if(CTachada>Checked)
Estilos<<fsStrikeOut
//Pasarlosestilosalaetiquetadetexto
CResultado>Font>Style=Estilos
//DependiendodeltiposeleccionadoasignareltipodefuenteaFont>Nameunacadenauotra
if(CArial>Checked)
CResultado>Font>Name="Arial"
elseif(CCourier>Checked)
CResultado>Font>Name="Courier"
else
CResultado>Font>Name="Roman"
//DependiendodeltamaoseleccionadoasignareltamaodelafuenteaFont>Sizeelvaloradecuado
if(C12>Checked)
CResultado>Font>Size=12
elseif(C14>Checked)
CResultado>Font>Size=14
else
CResultado>Font>Size=18
}