You are on page 1of 12

CURSODEGAMBAS2.0.

0
(Nivel2)

Carpano,Marzode2008

ProgramacinEnGAMBAS2.0.0

USODECONTROLESMASCOMUNES
LISTBOX:ElcontrolListBoximplementaunalistadeitemsseleccionables.Paracrearun
objeto ListBox dibujamoselobjetosobreunformularioeligiendoeltamaoylugarque
ocuparaenfuncindelarrastrequesehagaconelmouse.
Algunasdesuspropiedadessonlassiguientes:

Name:Inherentealnombredelobjeto.Ejem:MiListaBox.

Enable: Acepta valores booleanos (True o False), para permitir si se pueden


seleccionaritemsdelcontrolono.

Font:PermiteelegireltipoytamaodelafuentequemostraraelListBox.

List: Estapropiedadpermiteagregarungrupodeitemsquesemostraranenel
control.

Mode:Permitecolocarelcontrolendiferentesmodos(single,multiple,none),de
maneraquesepuedaseleccionarunsoloitem(single)ovariosalavez(multiple)

ToolTip:Muestramensajesemergentesalcolocarsesobreelcontrol.

Visible:Aceptavaloresbooleanos(TrueoFalse),paraindiciarsielobjetoestar
visibleonoenelformulario.
Enelsiguienteejemplovamosacrearunprogramaquepermitaingresar,eliminar

yvisualizarelementosatravsdeunobjetoListBox.Sequiereconesteprogramaqueal
escribir en la casilla ingrese un dato, este aparezca en la lista del lado derecho.
Adicionalmentealhacerclicsobrecualquieritemdelalistaesteaparezcareflejadoenuna
etiqueta.Tambindeberpermitireliminarunitemseleccionadoounoaunolositemsde
lalista.
Para ello creamos un Proyecto Nuevo en Gambas y dibujamos un formulario con los
controles(01TexBox,01ListBox,04Button,01Label),quesemuestranacontinuacin:

ProgramacinEnGAMBAS2.0.0

LapropiedadNamedelcontrolListBoxlacambiamosporelnombreListaBox.Elrestode
losobjetoslosdejamosconsusnombrespredefinidos.
Acontinuacinhacemosdobleclicsobreelformularioprincipalycolocamoselsiguiente
cdigo:
ME.Center()
Estainstruccinpermitirqueelformularioestecentradoenrelacinconeltamaoy
resolucindenuestromonitor.
Alcomienzodelcdigodelformularioprincipalescribimoslosiguiente:
'Gambasclassfile
PUBLICControlASBoolean
Estavariablepermitircontrolarlavalidacindelacasilladetextoparasabersiestavaca
ono.

EnelButton1(insertarenListBox),coloqueelsiguientecdigo:
PUBLICSUBButton1_Click()
control=TRUE
Validar
IFcontrol=FALSETHENRETURN
ListaBox.Add(TextBox1.Text)
TextBox1.Text=""
ProgramacinEnGAMBAS2.0.0

textbox1.SetFocus
END
Alpresionarelbotnestevalidaenprimerlugarquelacasilladetextonoestevaca;silo
estaemiteunmensajedeadvertenciaynoagregaeldatoalalista,yaquecambiaelvalor
delavariableControl.

EleventoValidartendrelsiguientecdigo:
PUBLICSUBValidar()
IFtextbox1.Text=""THEN
Message.Info("debeescribirunnombre")
TextBox1.SetFocus
Control=FALSE
ENDIF
END
EnelButton2(Eliminarunoauno),coloqueelsiguientecdigo:
PUBLICSUBButton2_Click()
ListaBox.Remove(0)
END
EstopermitirusarelmtodoRemoveparaeliminarunoaunoelcontenidodelalista.El
numero0indicaquedebehacerlohastaelprimeritemdelalista.

EnelButton3(Eliminarseleccionado),coloqueelsiguientecdigo:
PUBLICSUBButton4_Click()
DIMCantidadItemsASInteger
CantidadItems=ListaBox.Index
IFCantidadItems>=0THEN
ListaBox.Remove(CantidadItems)
ELSE
IFListaBox.Count>0ANDCantidadItems=1THEN
Message.Info("Debeseleccionaralgo")
ENDIF
ENDIF
END
ElmtodoIndexpermitirconocerlaposicindelitemseleccionadoenlalistademanera
de eliminarlo de la misma. Si no se seleccionada ninguno enva un mensaje de
advertencia.

ProgramacinEnGAMBAS2.0.0

Asmismo,paraqueloanteriorfuncione,sedebercolocarlasiguientecodificacinenel
eventoSelectdelListBox.
PUBLICSUBListaBox_Select()
DIMresultadoASString
resultado=Trim(ListaBox.Text)
Label2.Text=resultado&"FUESELECCIONADO"
END
EnelButton3(regresar),coloqueelsiguientecdigo:
PUBLICSUBButton3_Click()
FMain.Show
ME.Close
END
Esto nos permitir regresar al formulario principal (en caso que exista) y cerrar el
formularioexistente.
EJERCICIO:
Enbasealejemploanterior,realicelassiguientesmodificaciones:
1. Colocar un mensaje de informacin (Message.Info) que indique el numero del
elementoqueseestainsertandoenelListBox.
2. Colocar un mensaje de informacin (Message.Info) que indique el numero del
elementoqueseestaeliminandoenel ListBox alpresionarelbotnEliminarel
Seleccionado.
3. Cambiarlapropiedad Font del Button1 demaneraquesecoloqueennegritas
cuandoelmouseseposesobreelbotn.
4. Cambiarelcolordeltextoseleccionadoenlalistayquesemuestreenlaetiqueta.
LISTVIEW: El control ListView muestra una lista de items seleccionables. Es muy
parecidoalcontrol ListBox peroconladiferenciaquepuedenvisualizarseiconosenlos
objetosdelalista.
Algunasdesuspropiedadessonlassiguientes:

Border:Determinasielcontrolutilizaunbordeono.

Editable: Permite editar con un simple click cualquiera de los objetos que se
ProgramacinEnGAMBAS2.0.0

encuentranenlalista.Pordefectoestaopcinseencuentrainactiva(FALSE).

Mode:Definesiserunalistasimpleomltiple.

Scrollbar: Definesilasbarrasdedesplazamientodelcontrolestarnenlaparte
inferior o del lado derecho, o por el contrario el programa asumir la mejor
alternativadependiendodeltamaodeldato(Both).

Enelsiguienteejemplovamosacrearunprogramaqueutiliceelcontrol ListView para


ingresardatosyquelosmuestreenunaetiquetalabelalhacerclicsobrealgunodeellos.
Eldiseodelformulariodebeserelsiguiente:

Elcdigoaincluirenelformularioeselsiguiente:
PUBLICSUBForm_Open()
DIMPicLinuxASNEWPicture
DIMPicGambasASNEWPicture
PicLinux.Load("linux.png")
PicGambas.Load("gambas.png")
ListaView.Add("listitem1","listitem1",PicLinux)
TextLabel1.Text=ListaView.Item.Text
ListaView_Click
ME.Center()
END
EneleventoOpensecreandosvariablesquecontendrnlasimgenesqueestarnenel
control ListView.Inicialmentesedebeagregarunitemalcontrolparaquenopresente

ProgramacinEnGAMBAS2.0.0

erroralcargarelobjeto.EstoselograconlapropiedadAdd.
Luego sehaceunllamadoelevento ListaView_Click elcualmantendractualizadoel
controlpormediodelaspropiedades MoveCurrent,e Item.Selected paraindicarcuando
sehaseleccionadounitemdelalista.
PUBLICSUBListaView_Click()
ListaView.MoveCurrent
'ListaView.Item.Selected=TRUE
'TextLabel1.Text=ListaView.Item.Text&sStatus
END
Para regresar al men principal se hace un llamado al formulario principal y
posteriormente se cierra el formulario actual. En el caso que no se use un formulario
principalsimplementeescribaMe.Close().
PUBLICSUBButton2_Click()
FMain.Show
ME.Close(0)
END
Paraagregarunitemalalista,seusaelsiguientecdigo,dondeademssedebeelegirla
imagen que acompaar al item, por medio de la seleccin de uno de los objetos
RadioButtonqueseencuentranenelformulario(dosentotal).
PUBLICSUBButton1_Click()
DIMPicToUseASNEWPicture
IFTextBox1.Text<>NULLTHEN
IFRadioButton1.ValueTHEN
PicToUse.Load("linux.png")
ELSE
PicToUse.Load("gambas.png")
ENDIF
ListaView.MoveCurrent()
ListaView.Add(TextBox1.Text,TextBox1.Text,PicToUse)
TextBox1.Text=""
sStatus="current."
ListaView_Click
ListaView.Item.EnsureVisible
ENDIF
END

ProgramacinEnGAMBAS2.0.0

Lossiguienteseventosseutilizanparaactualizaryvisualizarelitemseleccionadoenel
control.LavariablesStatusalmacenalaopcinsielitemestaseleccionadooactivado.
Estoseusaparacasosdondedeseleccinmltiple.
PUBLICSUBListaView_Select()
TextLabel1.Text=ListaView.Item.Text
sStatus="seleccionado."
ListaView_Click
END
PUBLICSUBListaView_Activate()
TextLabel1.Text=ListaView.Item.Text&"seleccionado"
sStatus="activado."
ListaView_Click
END
EJERCICIO:
Enbasealejercicioanterior,modifquelodemaneraquealseleccionaruntemlocoloque
enlaetiquetaenmaysculas,negritaycentrado;adems,debermostrarunmensaje
(message.info)dondetambinmuestreelnombredeltem.
COMBOBOX:ElcontrolComboBoxseutilizaparamostrardatosenuncuadrocombinado
desplegable.Deformapredeterminada,elcontrolComboBoxapareceendospartes:la
partesuperioresuncuadrodetextoquepermitealusuarioescribirunelementodela
lista.Lasegundaparteesuncuadrodelistaquemuestraunalistadeelementos,delos
cualeselusuariopuedeseleccionaruno.
Algunasdesuspropiedadessonlassiguientes:

List:ListadeitemsquesepuedenagregaralComboBox.

Maxlength: Hacereferenciaalamximalongitudqueselepuedeasignaralos
itemsqueseincluirnenelcontrol.

Password: Permitemostraratravsdeunaopcinboleana(TrueoFalse)silos
itemsdelcontrolsemostrarancomocontraseas.

Visible:Permitemostraratravsdeunaopcinboleana(TrueoFalse)sielcontrol

ProgramacinEnGAMBAS2.0.0

estarvisibleono.
PormediodelsiguienteejemplodemostraremoselusodelcontrolComboBox,paraello
crearemosunformularioconelsiguienteaspecto:

Acontinuacin,colocaremoselsiguientecdigoenelformulario:
PUBLICSUBForm_Open()
ME.Center
ME.Title="EjemplodelUsodelControlComboBox"
BotonMas.ToolTip="AgregaunItemalComboBox"
BotonMenos.ToolTip="EliminaunItemdelComboBox"
END
Cuandoseinicieelformularioprincipalsecentrarelformularioquecontienealobjeto,
adems se colocar el titulo de la ventana activa y los mensajes emergentes de los
botonesdeagregaryeliminardelComboBox.
PUBLICSUBBotonMas_Click()
DIMEntradaASString
Entrada=InputBox("agregarsuedad<b>NoMienta!!</b>:","UsoComboBox","01")
ComboBox1.Add(Entrada)
ComboBox1.Refresh
END
ParaagregarunitemalobjetousaremoselcomandoInputBox,previoaellodebemos
crearunavariablequecontendrelvalor introducidoparaluegopasrseloalobjetoy
ProgramacinEnGAMBAS2.0.0

agregarlo.Porultimoseactualizaelobjeto.
PUBLICSUBBotonMenos_Click()
DIMNumItemsASInteger
ComboBox1.Refresh
NumItems=ComboBox1.Count
IFNumItems>0THEN
DECNumItems
IFNumItems<>0THEN
ComboBox1.Remove(NumItems)
ENDIF
ComboBox1.Refresh
ENDIF
END
Para eliminar un elemento del objeto ComboBox debemos en primer lugar contar la
cantidaddeitemsqueposeeelcontrol,paraquesepuedapasaralapropiedadremove
queeliminarelitemdelcontrol.PorultimoseactualizaelComboBoxdemaneraquese
visualicenlositemsdisponibles.
PUBLICSUBComboBox1_Change()
DIMresultadoASString
resultado=Trim(ComboBox1.Text)
'resultado="<b>"&Trim(ComboBox1.Text)&"</b>"
Etiqueta.Text="Edad:"&resultado&"Fueseleccionada"
END
El evento Change permitir mostrar el item seleccionado del ComboBox en un objeto
Label(ennuestrocasotieneelnombreEtiqueta).

PUBLICSUBButton1_Click()
FMain.Show
ME.Close
END
Por ultimovamosalmenprincipal(siexiste), ycerramos laventanaquecontieneal
control.
EJERCICIO:
En funcin del ejercicio anterior, modifquelo de manera que la edad seleccionada se

ProgramacinEnGAMBAS2.0.0

10

muestreennegrita.
TABSTRIP:ElcontrolTabStripimplementaunconjuntodepestaasenunsoloobjeto.Es
muy til para manipular datos que involucren una secuencia de adquisicin de
informacin;porejemplo,cuandosepidendatosbancariosdeuncliente,procesoque
implicavariospuntoscomodatospersonales,referenciasbancarias,etc.
Algunasdesuspropiedadessonlassiguientes:

Count:Permitedefinirlacantidaddepestaasquecontendrelcontrol.

Orientation:Definesilaspestaasdelcontrolestarnenlaparteinferior(Bottom)
oenlasuperior(top).

Picture: Permite colocar un icono en la pestaa que se este editando en ese


momento.Laimagenacolocardebetenerextensin.png,.jpg,.jpeg,.gif,.xpm

Text:Permitecolocarelnombrealapestaaqueseestaeditando.

A continuacin, vamos a crear un pequeo programa que nos permita ingresar


informacinutilizandoelcontrolTabStrip.Paraellousaremos02pestaas.Llamaremosa
nuestroTabStripContenedor.
Elformulariodiseadodebetenerelsiguienteaspecto:

ProgramacinEnGAMBAS2.0.0

11

EnlasegundapestaadenuestrocontrolTabStrip,sedebedibujarunTextLabel,elcual
modificaremos su tamao de texto y contenido a travs de lineas de cdigo que
colocaremosenelformulario.
Unavezingresadoslosdatos,sepresionaelbotnsiguientedemaneraquenoslleveala
prximapestaa,elcdigoquedebecontenereselsiguiente:
PUBLICSUBButton1_Click()
Tabulador.Index=1
END
Lapropiedadindexindicaalobjetoaquepestaaactivar,enestecasolapestaa1.Las
pestaassenumerandesdeel0hastan.
Adicionalmente,colocaremoselsiguientecdigoenelformulario:
PUBLICSUBForm_Open()
ME.Center()
TextLabel1.Text="<h1>"&"GRACIASPORINGRESARSUSDATOS"&"</H1>"
END
PUBLICSUBButton2_Click()
FMain.Show
ME.Close
END
EJERCICIO:
Diseeunprogramaqueleadoscadenasdetextoymuestreambasenmaysculasy
negritas,peroconcoloresdiferentes.UtiliceelcontrolTabStripparapedirenunapestaas
losdatosyenotralosresultados.

ProgramacinEnGAMBAS2.0.0

12

You might also like