Diálogos En GAMBAS


Ir a la página 1, 2  Siguiente

Objetivo: 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
Perfil MP  
Objetivo: 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é :/

Objetivo: 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

Perfil MP  
Objetivo: 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

Objetivo: 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

Perfil MP  
Objetivo: Re: Diálogos En GAMBAS
No había caído en ello. Corrijo el post inicial para que no genere mas errores.

Perfil MP  
Objetivo: 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:

Dialog.Path = User.Home

Objetivo: Re: Diálogos En GAMBAS
Gracias Soplo, buen tutorial

Perfil MP  
Objetivo: 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!!

Perfil MP  
Objetivo: Re: Diálogos En GAMBAS
Esto funciona en mis programas:

PictureBox1.Picture = NULL
PictureBox1.Refresh

Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1638s (PHP: -36% SQL: 136%)
Consultas SQL: 23 - Debug off - GZIP Activado