CURSODEGAMBAS2.0.
0
(Nivel2)
Carpano,Marzode2008
ProgramacinEnGAMBAS2.0.0
USODECONTROLESMASCOMUNES
LISTBOX:[Link]
objeto ListBox dibujamoselobjetosobreunformularioeligiendoeltamaoylugarque
ocuparaenfuncindelarrastrequesehagaconelmouse.
Algunasdesuspropiedadessonlassiguientes:
Name:[Link]: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
[Link]
escribir en la casilla ingrese un dato, este aparezca en la lista del lado derecho.
Adicionalmentealhacerclicsobrecualquieritemdelalistaesteaparezcareflejadoenuna
[Link]
lalista.
Para ello creamos un Proyecto Nuevo en Gambas y dibujamos un formulario con los
controles(01TexBox,01ListBox,04Button,01Label),quesemuestranacontinuacin:
ProgramacinEnGAMBAS2.0.0
[Link]
losobjetoslosdejamosconsusnombrespredefinidos.
Acontinuacinhacemosdobleclicsobreelformularioprincipalycolocamoselsiguiente
cdigo:
[Link]()
Estainstruccinpermitirqueelformularioestecentradoenrelacinconeltamaoy
resolucindenuestromonitor.
Alcomienzodelcdigodelformularioprincipalescribimoslosiguiente:
'Gambasclassfile
PUBLICControlASBoolean
Estavariablepermitircontrolarlavalidacindelacasilladetextoparasabersiestavaca
ono.
EnelButton1(insertarenListBox),coloqueelsiguientecdigo:
PUBLICSUBButton1_Click()
control=TRUE
Validar
IFcontrol=FALSETHENRETURN
[Link]([Link])
[Link]=""
ProgramacinEnGAMBAS2.0.0
[Link]
END
Alpresionarelbotnestevalidaenprimerlugarquelacasilladetextonoestevaca;silo
estaemiteunmensajedeadvertenciaynoagregaeldatoalalista,yaquecambiaelvalor
delavariableControl.
EleventoValidartendrelsiguientecdigo:
PUBLICSUBValidar()
[Link]=""THEN
[Link]("debeescribirunnombre")
[Link]
Control=FALSE
ENDIF
END
EnelButton2(Eliminarunoauno),coloqueelsiguientecdigo:
PUBLICSUBButton2_Click()
[Link](0)
END
[Link]
numero0indicaquedebehacerlohastaelprimeritemdelalista.
EnelButton3(Eliminarseleccionado),coloqueelsiguientecdigo:
PUBLICSUBButton4_Click()
DIMCantidadItemsASInteger
CantidadItems=[Link]
IFCantidadItems>=0THEN
[Link](CantidadItems)
ELSE
[Link]>0ANDCantidadItems=1THEN
[Link]("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([Link])
[Link]=resultado&"FUESELECCIONADO"
END
EnelButton3(regresar),coloqueelsiguientecdigo:
PUBLICSUBButton3_Click()
[Link]
[Link]
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 ([Link]) que indique el numero del
elementoqueseestainsertandoenelListBox.
2. Colocar un mensaje de informacin ([Link]) 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
[Link](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
[Link]("[Link]")
[Link]("[Link]")
[Link]("listitem1","listitem1",PicLinux)
[Link]=[Link]
ListaView_Click
[Link]()
END
EneleventoOpensecreandosvariablesquecontendrnlasimgenesqueestarnenel
control [Link]
ProgramacinEnGAMBAS2.0.0
[Link].
Luego sehaceunllamadoelevento ListaView_Click elcualmantendractualizadoel
controlpormediodelaspropiedades MoveCurrent,e [Link] paraindicarcuando
sehaseleccionadounitemdelalista.
PUBLICSUBListaView_Click()
[Link]
'[Link]=TRUE
'[Link]=[Link]&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
[Link]().
PUBLICSUBButton2_Click()
[Link]
[Link](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
[Link]<>NULLTHEN
[Link]
[Link]("[Link]")
ELSE
[Link]("[Link]")
ENDIF
[Link]()
[Link]([Link],[Link],PicToUse)
[Link]=""
sStatus="current."
ListaView_Click
[Link]
ENDIF
END
ProgramacinEnGAMBAS2.0.0
Lossiguienteseventosseutilizanparaactualizaryvisualizarelitemseleccionadoenel
[Link].
Estoseusaparacasosdondedeseleccinmltiple.
PUBLICSUBListaView_Select()
[Link]=[Link]
sStatus="seleccionado."
ListaView_Click
END
PUBLICSUBListaView_Activate()
[Link]=[Link]&"seleccionado"
sStatus="activado."
ListaView_Click
END
EJERCICIO:
Enbasealejercicioanterior,modifquelodemaneraquealseleccionaruntemlocoloque
enlaetiquetaenmaysculas,negritaycentrado;adems,debermostrarunmensaje
([Link])dondetambinmuestreelnombredeltem.
COMBOBOX:ElcontrolComboBoxseutilizaparamostrardatosenuncuadrocombinado
[Link],elcontrolComboBoxapareceendospartes:la
partesuperioresuncuadrodetextoquepermitealusuarioescribirunelementodela
[Link],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()
[Link]
[Link]="EjemplodelUsodelControlComboBox"
[Link]="AgregaunItemalComboBox"
[Link]="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")
[Link](Entrada)
[Link]
END
ParaagregarunitemalobjetousaremoselcomandoInputBox,previoaellodebemos
crearunavariablequecontendrelvalor introducidoparaluegopasrseloalobjetoy
ProgramacinEnGAMBAS2.0.0
[Link].
PUBLICSUBBotonMenos_Click()
DIMNumItemsASInteger
[Link]
NumItems=[Link]
IFNumItems>0THEN
DECNumItems
IFNumItems<>0THEN
[Link](NumItems)
ENDIF
[Link]
ENDIF
END
Para eliminar un elemento del objeto ComboBox debemos en primer lugar contar la
cantidaddeitemsqueposeeelcontrol,paraquesepuedapasaralapropiedadremove
[Link]
visualicenlositemsdisponibles.
PUBLICSUBComboBox1_Change()
DIMresultadoASString
resultado=Trim([Link])
'resultado="<b>"&Trim([Link])&"</b>"
[Link]="Edad:"&resultado&"Fueseleccionada"
END
El evento Change permitir mostrar el item seleccionado del ComboBox en un objeto
Label(ennuestrocasotieneelnombreEtiqueta).
PUBLICSUBButton1_Click()
[Link]
[Link]
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:[Link]
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
[Link],.jpg,.jpeg,.gif,.xpm
Text:Permitecolocarelnombrealapestaaqueseestaeditando.
A continuacin, vamos a crear un pequeo programa que nos permita ingresar
[Link]
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()
[Link]=1
END
Lapropiedadindexindicaalobjetoaquepestaaactivar,[Link]
pestaassenumerandesdeel0hastan.
Adicionalmente,colocaremoselsiguientecdigoenelformulario:
PUBLICSUBForm_Open()
[Link]()
[Link]="<h1>"&"GRACIASPORINGRESARSUSDATOS"&"</H1>"
END
PUBLICSUBButton2_Click()
[Link]
[Link]
END
EJERCICIO:
Diseeunprogramaqueleadoscadenasdetextoymuestreambasenmaysculasy
negritas,[Link]
losdatosyenotralosresultados.
ProgramacinEnGAMBAS2.0.0
12