Clase No 2 Gambas
Clase No 2 Gambas
Clase No 2 Gambas
Hay eventos que son comunes a todos los objetos, y otros no.
A continuacin se presenta una lista de los eventos ms usuales:
Evento
Click
Significado
El usuario hace una pulsacin click sobre el objeto (pulsa y suelta el boton
rapidamente)
DblClick
El usuario hace dos pulsaciones rpidas sobre el objeto
Enter
Se produce cuando entramos en el objeto con el puntero del raton
Leave
Se produce cuando sale del objeto con el puntero del raton
GotFocus
Se produce cuando el objeto consigue ser el foco del programa
LostFocus
Se produce cuando el objeto pierde el foco del programa
Drag/Drog Eventos relacionados con coger y soltar
KeyPress
Se produce cuando estamos en el objeto (tenemos el foco en el) y se pulsa una tecla.
Para saber que tecla se ha pulsado se usa key.code, el cual nos da el numero ASCII de
la tecla pulsada.
MouseDown Si se pulsa el boton del raton
MouseUp
Si se suelta el boton del raton.
MouseMove Si esta pulsado el boton del raton, y lo movemos dentro del objeto se produce este
evento. Se pueden obtener las coordenadas del raton, con mouse.x y mouse.y
"Me" se refiere el objeto actual (que es nuestro formulario Fmain), y las propiedades width y height
(ancho y largo), le podemos dar valores para que cuando se ejecute, el formulario cuando se abra tenga
las dimensiones especificadas. Para ejecutarlo se pulsa sobre el botn indicado.
Ademas de las dos formas explicadas, hay una tercera, que es usando el panel de propiedades (punto 1
de la figura 1), donde podemos buscar la propiedad y cambiar su valor:
Como vemos el Ide de gambas, nos da la ayuda de la propiedad que estemos editando. (punto 2 de la
figura 1)
Nota:
La pestaa "jerarqua" nos sirve cuando aadamos varios objetos en un formulario, se puedan ordenar
para cuando pulsemos la tecla "Tab", "salten" de uno a otro segn nuestros criterio.
Para terminar, con esta introduccin a los formularios, se pueden aadir tantos formularios
como se necesiten (incluso podemos reutilizar formularios de otros proyectos), todo ello desde la
ventana del Proyecto (tecla F10) donde haciendo click en "Fuente", y Formulario podemos aadir
nuevos formularios o existentes
Para aadir nuevo formulario, elegimos la pestaa "Nuevo" y si es para aadir uno existente la
pestaa "Existente"
Luego para trabajar con el control en el cdigo fuente simplemente usaremos TextBoxNombre
algo que nos facilitar mucho el trabajo de que es lo que contiene o ir a contener dicho control.
el programador estime necesario. Esta informacin puede ser del tipo variant (osea puede
contener cualquier tipo de datos: nmeros, textos, objetos, o otro variant)
La propiedad .tooltip: define el texto que se mostrar al pasar por el control y pararse un
momento en l. El ideal para mostrar informacin de lo que hace el control.
La propiedad .Background: define el color de fondo del control
La propiedad .ForeGround: define el color de la letra del control.
La propiedad .Alignment: define la alineacin del texto que tendr el control
Mtodos:
Son las funciones que tiene la clase (y el objeto instanciado de esa clase). El nombre y tarea que
hagan depende mucho del tipo clase que estemos usando. Tendris que ver la documentacin oficial
para tener ms detalles del mtodo en concreto para ver su funcionamiento en el control.
Algunos mtodos:
.Show(): muestra el control en tiempo de ejecucin.
.SetFocus(): hace que el foco del programa se asigne al control.
.Refresh(): redibuja el control. Para "forzar" el redibujo inmediato, hay que usar la orden Wait para que
se produza ,
Eventos:
Son las acciones que realiza el usuario sobre el control.
_Change(): se produce cuando hay un cambio (cambia el valor de una propiedad, por ejemplo)
_Click: se produce cuando el usuario hace un click del ratn dentro del control
_DblClick: se produce cuando un usuario hace doble click del ratn dentro del control.
_KeyPress: se produce cuando un usuario pulsa una tecla
_Enter: se produce cuando el puntero del ratn entra en el control
_Leave: se produce cuando el puntero del ratn sale en el control
_Lostfocus: se produce cuando el foco del programa lo pierde el control.
_gotFocus: se produce cuando el foco del programa lo adquiere el control.
_MouseDown(): se produce cuando el ratn esta dentro del control, y se pulsa el botn izquierdo del
ratn.
_MouseUp(): se produce cuando el ratn esta dentro del control, y se suelta el botn izquierdo del
ratn.
_MouseWheel: se produce cuando la rueda del raton se mueve o se pulsa.
_MouseMove: se produce cuando el ratn esta con el botn izquierdo pulsado y el puntero se mueve
dentro del control.
Por ejemplo: Evento Click, vemos los pasos que se producen:
http://gambaswiki.org/wiki/comp/gb.qt4/textarea
ButtonBox
ColorButton
DateChooser
Para elegir fecha, permite que el usuario elija una fecha dentro de
un calendario.
DirChooser
DirView
FileChooser
FileView
FontChooser
IconView
InputBox
MaskBox
MenuButton
Message
ScrollArea
Stock
TableView
ValueBox
Gambas
Containers
Expander
IconPanel
ListContainer
SidePanel
ToolPanel
Wizard
Dial
DrawingArea
Editor
GridView
Highlight
LCDlabel
Label
ListBox
ListView
Ejecuta una lista de artculos a eleccin del texto con los iconos.
Menu
Message
MovieBox
ProgressBar
RadioButton
ScrollBar
Separator
Slider
SpinBox
TextArea
TextBox
TextEdit
TextLabel
ToggleButton
ToolButton
TreeView
Un botn de palanca.
Un botn de la barra de herramientas, que exhibe su borde
solamente cuando el ratn incorpora el control.
Una vista de rbol de los artculos a eleccin del texto con los
iconos, puesta en un ndice una llave y exhibiendo una secuencia y
un icono para cada artculo.
Qt4/GTK
Containers
Frame
Hbox
Hpanel
Hsplit
Panel
PictureBox
ScrollView
TabPanel
TabStrip
Vbox
Vpanel
Vsplit
CONTROLES BASICOS
Controles: Escribir en el formulario (Label, TextLabel, LCDlabel)
Con
estos
controles
seremos
capaces
de
escribir
anotaciones
en
los
formularios.
Label: Usualmente se combina con los textbox para indicar que informacin debe de
introducir el usuario en el textbox, se usa a modo de etiqueta. La propiedad que se usa es el .text, para
escribir el texto que aparecer.
TextLabel: El textlabel admite cdigo en html, con lo cual podemos escribir en colores,
tamao de letras, y otros efectos.
LCDlabel / LCDNumbrer:
pantalla LCD (de segmentos).
Textbox: Permite la entrada de texto por parte del usuario, incluso se puede editar el texto
introducido.
Nota: Tambin permite la entrada de nmeros, pero se tendrn que convertir en nmeros con la
funcin Val() pero puede dar problemas al intentar convertir texto en nmeros. Para introducir nmeros
es mejor usar el control valueBox
TextEdit: Es textbox avanzado, que permite la edicin de texto rico (formateado) para
ello, el contenido rico en formato, lo asignamos a la propiedad .richtext
TextArea: Es un editor que permite mltiples lineas. Los textbox, solo te permiten editar
una linea. Si tienes un texto con varios retornos de carros, no los puedes editar con un textbox. Para
este caso usamos el TextArea, con la propiedad .warp con valor true.
MaskBox: Este control permite la entrada de datos pero mediante una mscara, con lo cual
forzamos a que escriba el usuario los datos de una determinada manera. Para definir la mscara
usaremos la propiedad .mask
ButtonBox: es una mezcla entre textbox y un botn. El uso que tiene es poder abrir cuadros
de dialogos o otros formularios, para asignarle valores.
Ejemplo: En este ejemplo vemos los Box colocados en un formulario:
Los Box, son editables, y el usuario puede modificar/borrar o aadir nuevo contenido en cada uno de
ellos
Controles: Botones
Estos controles son los habituales botones usados para aceptar, cancelar o hacer cualquier operacin.
Para la configuracin del botn se usan varias propiedades:
.text : texto que tendr el botn
.picture: icono que llevar el botn
Para indicar que es lo que tiene que hacer el programa cuando se pulsa el botn se usa el evento _Click.
Dentro de este evento indicaremos el cdigo que se ejecutar.
MenuButton: Este control es un botn con una pequea flecha a la derecha que exhibe un
men mvil asociado.
Checkbox: Muestra una caja de control que puede ser activada o desactivada. El estado
del checkbox, se almacena en la propiedad .value. Un .value=TRUE significa que esta activada, y un
.value=False significa que esta desactivada.
SpinBox: Este control permite que el usuario elija un valor entero con los botones
arriba/abajos, o mecanografiando el valor directamente en la caja de vuelta.
Tendremos que usar 4 propiedades para definirlo:
Es muy importante usar la propiedad .name para poner un nombre identificativo a cada control
Este seria el codigo fuente, que segn lo que elijamos al pulsar "Hacer Pedido", genera en el Textlabel
el texto del pedido:
Esta es la aplicacin ejecutndose, cuando hemos elegido varias opciones, n de equipos y checkbox ,
habiendo pulsado el boton Hacer Pedido:
Ejemplo:
ListboxPlatos.mode=select.multiple
De esta forma en el listbox llamado ListboxPlatos, se pueden seleccionar varios item.
ListView: Es igual que un listbox, pero se le puede indicar un icono a cada item de la
lista.
Para ello el mtodo .add pide ms datos:
Function Add ( Key As String, Text As String [ , Picture As Picture, After As
String ] )
Explicacin de los parmetros de la funcin:
Key: es la "llave" que identifica univocamente el registro
Text: texto que aparecer
Picture: icono que aparece (opcional, si no se pone no aparece ningun icono)
After: indica despues del item donde se inserta el nuevo idem (opcional, sino se pone, se aade al final
de la lista.)
Programa Ejecutndose
ProgressBar: Un control de la barra de progreso. Nos sirve para mostrar el estado de una
tarea, por ejemplo descargando un archivo nos muestra que porcentaje llevamos.
La propiedad que usaremos es .value, que estar entre 0 y 1.
Por ejemplo para que marque el 80% de una tarea, debemos darle el valor de 0.80
progressbar1.value=0.8
Aplicacin ejecutandose:
- otro para que haga un reclculo cada 1 segundo, usando la operacin indicada por un combobox, entre
los valores de 2 valuebox, y que presente el resultado en otro valuebox. Adems mostrar un mensaje
de la operacin que ha realizada.
Aplicacin ejecutndose:
Contenedores y Organizadores
Los contenedores y organizadores son controles que nos ayudan a organizar dentro de ellos los
controles que contengan(llamados hijos) y adems tambin admiten otros contenedores dentro de el
mismo (tambin llamado hijos)
Contenedores:
Organizadores:
Hbox: es un contenedor que ordena los controles que contenga horizontalmente. Si los
anchos de los controles "hijos" (contenidos) es mayor al ancho del Hbox, no se veran.
La propiedad .autoresize=true hace que cambie de tamao (en el caso del HBox modifica el ancho),
para que quepan todos los controles que tenga dentro.
Hpanel: es muy parecido al HBox, pero con la ventaja de que si los controles contenidos
supera el ancho, se van creando filas para que los controles se coloquen, lo cual permite que se vean
todos los controles hasta superar el alto del Hpanel.
Vbox: Es un contenedor que ordena los hijos (controles que contenga) verticalmente (de
arriba a abajo)
Vpanel: igual que el Hpanel, pero empieza de arriba a abajo, y luego va creando columnas
de controles.
Ejemplo: Para que ver su uso tenemos este ejemplo
Formulario en ejecucin
Como se ve los controles que estn dentro de los contenedores, a la hora de ejecutarse se organizan
segn el tipo de contenedor (Hbox, Hpanel, HSplit)
Contenedores y Organizadores II
Expander:
Es un contenedor que puede encogerse para ocultar su contenido y
expandirse cuando pulsemos al icono triangular que aparece. Su tamao es fijo, y la pestaa del
expander (triangulito) siempre aparece en el mismo lugar
SidePanel: Un contenedor que puede ser ocultado o ser vuelto a clasificar segn el
tamao. Se puede modificar el tamao como un Hsplit y la pestaa (dos triangulos), cambia de posicin
al esta extendido o no.
ListContainer: Un ListBox especial pensado para los controles inalterables, solamente.
ToolPanel: Una caja de herramientas con los paneles verticales scrollable mltiples de la
barra de herramientas.
DirView
Este control permite que el usuario seleccione un directorio. Un TreeView que exhibe un
directorio y sus directorios de nio.
DirChooser
Este control permite que el usuario seleccione un directorio. Da ms opciones que el DirView, ya que
permite mostrar archivos, archivos ocultos, previsualizar, etc.
FileChooser
FileView
IconView
TableView: Un GridView mejorado ya que permite editar los datos que se muestren.
Utilice el mtodo del corregir; este mtodo se debe llamar durante el evento click.
Propiedades importantes:
.Columns.Count: define el nmero de columnas que hay en la rejilla
.Rows.Count: define el nmero de filas que hay en el rejilla
.Columns.Width: define el ancho
.Rows[X].Height: define el alto que tendr la fila X
.text: Para poder asignar valores a las celdas de una rejilla, lo hacemos como si fuera un array de 2
dimensiones. Por ejemplo si tenemos un gridview, llamado RejillaDatosPersonales, vamos a asignarles
valores:
RejillaDatosPersonales[0,0].text="Juan" ' asignamos a la celda "A1" (primera fila y primera columna
en el margen izquierdo superior de la rejilla), el valor del texto "Juan".
Tambin podemos asignar alineaciones e iconos:
RejillaDatosPersonales[0,0].Alignment = Align.Right 'el contenido lo pone justificado a la derecha
RejillaDatosPersonales[0,0].Picture=picture["persona.png"] ' asigna una imagen llamada
"persona.png", que aparecer en la celda A1.
Hay que tener en cuenta que el ancho y alto de la celda se vern modificados por las dimensiones de la
imagen. Normalmente se aaden iconos que tengan las mismas dimensiones.
Puedes usar este programa que genera el cdigo necesario para definir un gridview (y tableview).
Es muy frecuente usar Gridview para mostrar los resultados de consultas de bases de datos.
Veremos un ejemplo de uso del evento _data para rellenar los datos cuando estos son muchos ya que
los presenta muy rpidamente y es la forma ptima.
Edicin de celdas:
Si queremos que el usuario pueda editar en la misma rejilla los datos, tenemos que usar el control
TableView, que permite hacerlo.
Para ello usamos el mtodo .Edit:
Si lo usamos sin parmetros lo editamos con un textbox.
TableViewDatos.edit '---> editar en textbox
Si le pasamos dos parmetros, uno un array de string y otro parametro que es un boolean para
indicarle si es solo lectura (valor True) o se puede escribir (valor False) , nos aparece un
combobox:
TableViewDatos.edit(TablaOpciones, True)
y el evento _Save para guardar lo editado:
1. Public Sub TableViewDatos_Save(Row As Integer, Column As Integer, Value As String)
2.
3.
4. End Sub
Otro Ejemplo:
Esta vez vamos a mostrar el resultado de una consulta de una base de datos, pero vamos a rellenar el
gridview con el evento _data (que es mucho ms eficiente que rellenarlo para resultados con muchas
filas).
Mas concretamente, el programa crea una base de datos sqlite con una tabla con 10.000 registros y los
muestras en un gridview.
Nota:
Una mejora del cdigo es poner en el evento data que se coloree la linea segn sea par o impar:
1. Public Sub GridView1_Data(Row As Integer, Column As Integer)
2.
3.
4.
$res.moveTo(row)
If row Mod 2 = 0 Then gridview1.Data.Background = Color.RGB(68, 186, 199)
GridView1.Data.text = Str($res[GridView1.Columns[column].text])
5. End
ColumView y TreeView
TreeView: Una vista en forma de rbol de datos, pudiendo aadir iconos, lleva un valor
nico para indentificar cada dato (key)
Propiedades:
.Current: retorna el dato "actual", el que tiene el foco o el que esta seleccionado (si el modo de
seleccin en nico)
.Current.key: retorna la llave (key) del dato "actual"
.Selection: devuelve un array de cadenas con las llaves (keys) que los elementos seleccionados.
.item: retorna el cursor interno, o Null si el cursor interno no esta disponible.
Mtodos:
.add: Se usa el mtodo .add para aadir un dato, de la siguiente forma:
Function Add ( Key As String, Text As String [ , Picture As Picture, Parent As String, After
As String ] ) As _TreeView_Item
Siendo:
Key: id del nuevo dato
Text: texto del nuevo dato
Picture: icono del nuevo dato (si no se indica no se dibuja nada)
Parent: id del "padre" del que cuelga el dato, si no se pone nada se pone en el elemento raiz (root)
After: indica el id del "hermano" donde se pondr el nuevo dato. El hermano debe de tener el mismo
.stretch: la imagen se va a mostrar adaptada a las dimensiones del control (puede verse deformada)
ImageView: Es un control que nos permite ver una imagen, pero tienes una barras de
scroll para ver la imagen
.image: en esta propiedad definimos la imagen que queremos que se carge en el control.
.zoom: define el nivel de zoom de la imagen: 1 es 100%, 2 es 200%, 0.50 es 50%.
MovieBox: Proporciona un control que exhiba imgenes animadas del GIF o de MNG.
Propiedades principales:
.path: definimos donde esta la ruta y el nombre del fichero .Gif o .Mng
.playing: ponemos en marcha la imagen animada o la paramos. (tambien nos sirve si esta parada o
moviendose)
Ejemplo:
En este ejemplo se puede ver un picturebox cuya imagen que tiene asignada es mayor que sus
dimensiones,y con un checkbox activo la propiedad .strech para que la imagen se adapte a las
dimensiones del picturebox. Tambien se muestra una animacin .gif, que pulsando un toggleButton se
ejecuta o para la animacin.
Aplicacin ejecutandose:
Nota:
Mochila es un control contenedor, por ejemplo un HPanel
ObjetosEnMochilas: es el observador que cuando se produzca un evento se ejecutar el cdigo (por
ejemplo _click)
Es muy importante usar la propiedad .tag de los nuevos objetos, para aadir informacin del objeto, y
luego usarlo mediante la orden Last.Tag (vease: http://gambaswiki.org/wiki/lang/last?l=es )
Nota2:
Se podra crear esto mismo, creando varios controles PictureBox y ocultandolos (con la propiedad
.visible=false), pero para hacerlo de esta forma necesitamos saber el numero de objetos mximo que
puede tener para crear dichos controles previos.
Fijemonos que tenemos la funcion"recibirmensaje(texto as string)" que accesible desde todos los
formularios, modulos y clases porque es una funcin publica (Public), y que acepta como parametro un
texto.
Public Sub recibirmensaje(texto As String)
Este parmetro que recibe, lo va a asignar al textlabelMostrarDato.
TextLabelMostrarDato.text = texto
Bien, ahora pasamos al Formulario que tiene un textbox llamado "TextboxMensaje" y un botn
llamado "ButtonCerrar".
Este es su cdigo:
Public Sub Form_Open()
End
Public Sub ButtonCerrar_Click()
FMain.recibirmensaje(TextBoxMensaje.text)
Me.Close()
End
Cuando hacemos click en el botn, se ejecuta el cdigo contenido en
Public Sub ButtonCerrar_Click()
FormUsuario.ShowModal()
La diferencia de usar el mtodo Show y ShowModal, es que con ShowModal indicamos hasta
que no se cierre el formulario que acabamos de abrir, no se atiende a los otros formularios que se
tengan abiertos de la aplicacin (quedan en "gris" y aunque se haga clic sobre ellos, no se pueden usar).
Este mtodo se usa mucho para elegir carpetas o archivos, donde necesitamos que nos den ese dato
para continuar con el programa.
Los formularios, al ser realmente como una clase (es una clase"especial" ya que tienen
asociadas una ventana con controles), tambin se pueden instanciar. Esto permite crear instancias,
objetos que son formularios independientes unos de otros, pero de la misma clase.
Para dejar ms claro lo que se acaba de decir, se tiene el siguiente este ejemplo:
Se trata de un programa con dos formularios, en el primero (Fmain) nos permite elegir varias formas de
abrir el segundo formulario (form1). Este segundo formulario le pasamos la informacin de como se a
abierto (usando la propiedad .tag) y tambin le pasamos la imagen que queremos que nos muestre,
usando el mtodo "setImagen()" del formulario form1.
Aplicacin ejecutndose:
Ejecutndose el programa, donde se han abierto 3 formularios Form1 en modo Show y con
instancias
Nota:
Cuando creamos un proyecto grfico, la "Clase de inicio", va a ser el formulario Fmain lo cual
indica que es lo primero que se ejecutar cuando arranque la aplicacin.
Esta "Clase de inicio" se puede cambiar a otro formulario o incluso a otro mdulo. Este cambio
se hace desde el men que sale, cuando pulsamos en la zona izquierda (donde esta el rbol del
proyecto).
FORMULARIOS PREDEFINIDOS
InputBox
Static Function InputBox ( Prompt As String [ , Title As String, Default As String
] ) As String
Este formulario esta prediseado, y nos permite obtener un texto solicitado al usuario. (Luego
este texto, si necesitamos que sea un nmero, se puede convertir en un nmero usando las funciones de
conversin de datos).
Funciona como una funcin que admite varios parmetros y nos devuelve un dato tipo string (cadena)
Parmetros:
Prompt
es el texto que se muestra en la parte delantera de la caja de texto donde el usuario introduce el valor.
Tenga en cuenta puede usar una cadena de texto enriquecido.
Title
Message
Existe una clase con la que podemos crear mensajes para mostrar por pantalla: Message.
La cual
tiene la propiedad TiTle, que especifica el titulo que va a tener el mensaje, y varios mtodos para
indicar diversos tipos de mensajes (borrado, aviso, error, informacin y pregunta)
A continuacin se presenta un ejemplo de como usarlo:
Public Sub Form_Open()
Dim respuesta As Integer
'------------------------------------------'Ejemplo de uso de message.Delete (borrado)
'------------------------------------------Message.Title = "Borrar: Titulo del mensaje"
respuesta = Message.Delete("Texto", "boton 1", "boton 2", "boton 3")
Print "Mensaje Delete: respuesta elegida ", respuesta
'------------------------------------------'Ejemplo de uso de message.Warning (aviso)
'------------------------------------------Message.Title = "Warning: Titulo del mensaje"
respuesta = Message.Warning("Texto", "boton 1", "boton 2", "boton 3")
Print "Mensaje Warning: respuesta elegida ", respuesta
'------------------------------------------'Ejemplo de uso de message.Error (Error)
'------------------------------------------Message.Title = "Error: Titulo del mensaje"
respuesta = Message.Error("Texto", "boton 1", "boton 2", "boton 3")
Print "Mensaje Error: respuesta elegida ", respuesta
'------------------------------------------'Ejemplo de uso de message.info (informacion)
'------------------------------------------Message.Title = "Info: Titulo del mensaje"
respuesta = Message.Info("Texto", "boton 1")
Print "Mensaje Info: respuesta elegida ", respuesta
'------------------------------------------'Ejemplo de uso de message.Question (pregunta)
'------------------------------------------Message.Title = "Question: Titulo del mensaje"
respuesta = Message.Question("Texto", "boton 1", "boton 2", "boton 3")
Print "Mensaje Question: respuesta elegida ", respuesta
End
Dialog
La clase dialog, nos proporcionas los tpicos formularios de dilogo para:
- abrir un archivo (usando el mtodo .openfile)
- guardar un archivo (usando el mtodo .savefile)
- seleccionar un color (usando el mtodo .selectcolor)
- seleccionar un directorio (usando el mtodo .selectdirectory)
- seleccionar un tipo de letra (usando el mtodo .selectfont)
- seleccionar una fecha (usando el mtodo .selectdate)
Propiedad Definicion
path
title
filter
paths
Ejemplo
Dialog.Path =
define o retorna la ruta elegida
"/home/hjh/spiele/sudoku"
el titulo del cuadro de dialogo Dialog.Title = "Elige archivo"
Dialog.Filter =
define los filtros de ficheros a
[ "*.png;*.jpg;*.jpeg;*.bmp",
aplicar
"Imagenes", "*.svg", "Dibujos" ]
devuelve el array de directorios
elegidos
else
Fchero=Dialogo.path
endif
En el caso de que se hayan seleccionado varios ficheros se debe mirar el array de Dialogo.path
dim Dialogo as dialog, Ficheros as string[]
Dialogo.title="titulo de la ventana "
Dialogo.filter=[ "*.png;*.jpg;*.jpeg;*.bmp", "Imgenes";"*", "Todos los archivos" ]
Dialogo.path=user.home
if Dialogo.openfile( ) then
message.error(" el usuario cancel" )
else
for each imagen in Dialog.path
Ficheros=split( Dialogo.path, "\n" )
next
end if
En este punto conviene mencionar aqu al objeto FILE.
Dim Fichero as string
Fichero=file.basename(dialog.path) ====> obtiene el nombre del fichero
Fichero=file.ext(dialog.path) ====> obtiene la extensin del fichero
Fichero=file.name(dialog.path) ====> obtiene el nombre completo del fichero
Fichero=file.dir(dialog.path) ====> obtiene el path del fichero
Selectcolor: Sirve para elegir un color.
Ojo! el cdigo de color no se corresponde con los colores constantes (color.blue por ejemplo)
Dialog.Color = ME. BackColor
IF Dialog.SelectColor() THEN RETURN
ME. BackColor = Dialog.Color
*
El formulario "Editor de Mens":
Mens Popup:
Para crear menus popup, tenemos que indicar que su propiedad Visible est desactivado.
En este caso es el "Menu1Popup", es el que tiene visible desactivado. Las opciones del men si deben
de tener "visible" activado
El control que tenga asociado el menu popup, tendr la propiedad .Popupmenu igualada al
nombre del menu (como si fuera una cadena de caracteres) Ejemplo:
GridView1.PopupMenu = "Menu1EspecialPopup"
Ejemplo: Men creado en las anteriores capturas de pantalla:
Ejemplo Menu