Autor |
Mensaje |
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Diálogos En GAMBAS
Este control requiere GB.FORM.DIALOG.
En gambas existen varias clases de dialogos.
diálogo Openfile, savefile y selectdirectory
Se usan de la siguiente forma
dim Dialogo as dialog, Fichero as string
Dialogo.title="titulo de la ventana "
Dialogo.filter=[ "*.png;*.jpg;*.jpeg;*.bmp", "Imágenes";"*", "Todos los archivos" ]
Dialogo.path="/home"
if Dialogo.openfile( ) then
message.error(" el usuario canceló" )
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", "Imágenes";"*", "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 extensión 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 código 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
selectfont
Sirve para elegir una fuente
Dialog.Font = TextArea Edit.Font
IF Dialog.SelectFont () THEN RETURN
TextAreaEdit.Font = Dialog.Font
última edición por soplo el Miercoles, 16 Septiembre 2009, 19:03; editado 8 veces
|
#1 Domingo, 13 Septiembre 2009, 20:20 |
|
|
CanihoJR
Ingeniero Programador
Registrado: Septiembre 2009
Mensajes: 269
Edad: 38 Ubicación: San Pedro Alcantara
|
Re: Diálogos En GAMBAS
en el primer caso pusiste: Fchero=Dialogo .path en lugar de FICHERO aun asi, me dice:
Class dialog is no creatable, alguna ideilla? o algun error noob?
Edito: me salia que Class dialog is no creatable porq no tenia habilitado el componente gb.form.dialog por si a alguien le sirve de ayuda
asi que ahora me dice otros dos errores, en las lineas:
PUBLIC SUB Button1_Click()
DIM Dialogo AS NEW dialog, Fichero AS String
'Dialogo.title = "Selecciona una imagen."
'Dialogo.filter = "Imágenes (*.png;*.jpg ;* .gif;*.jpeg), Todos los archivos ( *.*)"
'Dialogo.path = "/home"
IF Dialogo.openfile() THEN
message.error(" el usuario canceló")
ELSE
Fichero = Dialogo.path
ENDIF
END
Dialogo.title, el filter y el path, si las descomento me suelta un mensaje de error avisandome de que Dialog,title is static........ aqui si q me atranké :/
|
#2 Miercoles, 16 Septiembre 2009, 15:06 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Diálogos En GAMBAS
Prueba así.
PUBLIC SUB Button1_Click()
DIM Dialogo AS dialog, Fichero AS String
Dialogo=new dialog
Dialogo.title = "Selecciona una imagen."
Dialogo.filter = [ "*.png;*.jpg;*.jpeg;*.bmp", "Imágenes";"*", "Todos los archivos" ]
Dialogo.path = "/home"
IF Dialogo.openfile() THEN
message.error(" el usuario canceló")
ELSE
Fichero = Dialogo.path
ENDIF
END
|
#3 Miercoles, 16 Septiembre 2009, 15:44 |
|
|
CanihoJR
Ingeniero Programador
Registrado: Septiembre 2009
Mensajes: 269
Edad: 38 Ubicación: San Pedro Alcantara
|
Re: Diálogos En GAMBAS
nada, con ese ejemplo tampoco me sirve.... prové tb a ponerlo entre ( y ponerlo como filter() sin asignar y nada :/
el codigo q tengo es este:
PUBLIC SUB Button1_Click()
'creo variable
DIM Dialogo AS dialog
DIM Ruta AS String
'creo objeto dialogo.
Dialogo = NEW dialog
'doy propiedades a la ventana:
'Dialogo.Title = "Selecciona una imagen."
'Dialogo.Filter=["*.png;*.jpg;*.jpeg;*.bmp", "Imágenes"; "*", "Todos los archivos"]
'Dialogo.path = "/home"
IF Dialogo.openfile() THEN
PictureBox1.Picture.Clear
ELSE
Ruta = Dialog.Path
PictureBox1.Picture = Picture[Ruta]
ENDIF
END
Con esas 3 lineas comentadas se me abre la ventana de dialogo, y puedo seleccionar la imagen, pero al cerrar la ventana de dialogo, ya sea dnadole a la X sin selecionar nada, dandole a cancelar o simplemente aceptando despues de seleccionar una imagen, me arroja error #11 y se me termina el programa o_O
|
#4 Miercoles, 16 Septiembre 2009, 16:15 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Diálogos En GAMBAS
La clase Dialog es estática, es decir, no puedes crear instancias de ella con NEW
PUBLIC SUB Button1_Click()
DIM Ruta AS String
'doy propiedades a la ventana:
Dialog.Title = "Selecciona una imagen."
Dialog.Filter = ["*.png;*.jpg;*.jpeg;*.bmp", "Imagenes", "*.*", "Todos los ficheros"]
' he puesto la propiedad Stretch en True para que ajuste la imagen al picturebox
Dialog.path = "/home"
TRY PictureBox1.Picture.Clear ' no funciona, hay que investigar
IF Dialog.openfile() THEN RETURN 'si cancelamos el dialogo, sale del procedimiento sin errores
Ruta = Dialog.Path
PictureBox1.Picture = Picture[Ruta]
END
Esta es la manera correcta de crear un diálogo. Pero no sé por qué no me limpia el PictureBox1!!!!
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#5 Miercoles, 16 Septiembre 2009, 16:58 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Diálogos En GAMBAS
No había caído en ello. Corrijo el post inicial para que no genere mas errores.
|
#6 Miercoles, 16 Septiembre 2009, 19:00 |
|
|
CanihoJR
Ingeniero Programador
Registrado: Septiembre 2009
Mensajes: 269
Edad: 38 Ubicación: San Pedro Alcantara
|
Re: Diálogos En GAMBAS
Ajá ahora si que funciona solo me queda el tema de borrar el picturebox ^^ voy a darle solucion aver si encuentro algo
Edito: ya que el utlimo post tb era mio, lo incluyo aqui
Si quereis que el Path se abra en el Home del usuario, seria asi:
|
#7 Miercoles, 16 Septiembre 2009, 21:28 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Diálogos En GAMBAS
Gracias Soplo, buen tutorial
=================== No podemos regresar
|
#8 Martes, 22 Septiembre 2009, 20:22 |
|
|
emilalberto
Usuario
Registrado: Noviembre 2009
Mensajes: 2
Edad: 37
|
Re: Diálogos En GAMBAS
muy bueno tu post, has logrado limpiar el picturebox porq he tratado de hacerlo y nada..
he probado con picturebox.picture= NULL y nadaa
gracias!!
|
#9 Miercoles, 11 Noviembre 2009, 13:31 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Diálogos En GAMBAS
Esto funciona en mis programas:
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#10 Miercoles, 11 Noviembre 2009, 13:52 |
|
|
|