Página 1 de 2
Ayuda Con La Construccion De Clase "PreguntaView"
Autor
Mensaje
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44
Ubicación:
Uruguay
Ayuda Con La Construccion De Clase "PreguntaView"
hola gente...
esta es la clase que he añorado hace mucho pero aun no doy con la solución por falta de conocimiento (que vamos por ser tan chambom
)
he estado modificando la clase messageview y la parte gráfica queda impecable, pero el problema es que necesito que al hacer clic en cualquier boton me retorne la respuesta
que sera de tipo booleano, si apreta el botón "aceptar" sera true y si es el botón "cancelar" sera false
en si necesito que sea como la clase Message que retorna un integer
alguien me puede echar una mano con esta clase?
aquí lo que he logrado
Link
Descripción:
Descargar
Nombre del archivo:
miMsg-0.0.1.tar.gz
Tamaño:
14.63 KB
Descargado:
28 veces
Descripción:
Descargar
Nombre del archivo:
miMsg-0.0.1.tar.gz
Tamaño:
14.63 KB
Descargado:
28 veces
Descripción:
Descargar
Nombre del archivo:
miMsg-0.0.1.tar.gz
Tamaño:
14.63 KB
Descargado:
28 veces
===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog:
http://novatocodegambas.blogspot.com.uy/
#1 Lunes, 18 Abril 2016, 07:42
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57
Ubicación:
Granada
Re: Ayuda Con La Construccion De Clase "PreguntaView"
Si escribes en español en la lista de correo o en el bugtracker, no te van a hacer mucho caso... o algo peor
La norma es el inglés, y eso no va a cambiar, me temo.
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"
#2 Lunes, 18 Abril 2016, 16:27
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64
Ubicación:
Albacete
Re: Ayuda Con La Construccion De Clase "PreguntaView"
No entiendo el problema, ya tienes el boolean en ja1.close()...
===================No podemos regresar
#3 Lunes, 18 Abril 2016, 17:38
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44
Ubicación:
Uruguay
Re: Ayuda Con La Construccion De Clase "PreguntaView"
No entiendo el problema, ya tienes el boolean en ja1.close()...
esta mal shordi, intenta usar la misma clase con varias preguntas y te darás cuenta que no esta bien....
mi idea es esta:
if preguntaView.Open("quieres eliminar el archivo passwd?") then
delete archivo
else
no hacer nada
endif
===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog:
http://novatocodegambas.blogspot.com.uy/
#4 Lunes, 18 Abril 2016, 17:47
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64
Ubicación:
Albacete
Re: Ayuda Con La Construccion De Clase "PreguntaView"
Open no retorna valor. Por tanto n=preguntaview.open(texto) no puede funcionar. Yo le añadiría una propiedad "pregunta" tipo string y lanzaría la función open() desde el evento pregunta_write.
Saludos
===================No podemos regresar
#5 Lunes, 18 Abril 2016, 18:01
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44
Ubicación:
Uruguay
Re: Ayuda Con La Construccion De Clase "PreguntaView"
Open no retorna valor. Por tanto n=preguntaview.open(texto) no puede funcionar. Yo le añadiría una propiedad "pregunta" tipo string y lanzaría la función open() desde el evento pregunta_write.
Saludos
no entendi
===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog:
http://novatocodegambas.blogspot.com.uy/
#6 Martes, 19 Abril 2016, 20:01
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64
Ubicación:
Albacete
Re: Ayuda Con La Construccion De Clase "PreguntaView"
Tomado del código de tu clase:
Open es un Sub no una Function. No retorna ningún valor.
Por tanto qué esperas que se guarde en n cuando escribes:
n= preguntaview.open ( texto)
===================No podemos regresar
#7 Martes, 19 Abril 2016, 20:45
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44
Ubicación:
Uruguay
Re: Ayuda Con La Construccion De Clase "PreguntaView"
el objetivo que busco es que la parte gráfica funcione como un messageview (obviamente con las modificaciones que le hice y que se ven en el vídeo que están bien)
pero en su código como un message. (aquí lo difícil
)
se invoca la clase visualizándola esperando devolver un resultado y cuando se haga clic en cualquiera de los botones devuelva el resultado (de tipo boleano o byte 0 o 1)
la clase tiene que funcionar como message
if preguntaview.Pregunta("pregunta x") then (el retorno puede ser de tipo boleano o byte )
acción tras botón aceptar
else
acción tras botón cancelar
endif
===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog:
http://novatocodegambas.blogspot.com.uy/
#8 Martes, 19 Abril 2016, 21:14
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44
Ubicación:
Uruguay
Re: Ayuda Con La Construccion De Clase "PreguntaView"
esto al parecer funciona lo estoy probando
' gambas class file
Export
Inherits UserControl
Public Const _Properties As String = "*,Animated,Separator,Respuesta"
Public Const _DefaultSize As String = "32,6"
Public Const _Group As String = "View"
Public Const _DrawWith As String = "DrawingArea"
Event Open
Event Close
Property Animated As Boolean
Property Separator As Boolean
Property Respuesta As Boolean
Private Enum ESPERA, CANCELAR, ACEPTAR
Private $sText As String
Private $hIcon As Picture
Private $hView As DrawingArea
Private $hClose As Button
Private $Aceptar As Button
Private $Respuesta As Boolean
Private $bAnimate As Boolean
Private $bSeparator As Boolean
Private $H As Integer
Private $Estado As Integer
Public Sub _new( )
$hView = New DrawingArea ( Me ) As "View"
$hView.Background = Color.TextBackground
$hView.Foreground = Color.TextForeground
$hClose = New Button ( $hView) As "CloseButton"
$hClose.H = Desktop .Scale * 4
$hClose.AutoResize = True
$hClose.Text = ( "Cancelar" )
$hClose.Picture = Picture [ "icon:/small/cancel" ]
$hClose.Tag = 0
$Aceptar = New Button ( $hView) As "Aceptar"
$Aceptar.Height = Desktop .Scale * 4
$Aceptar.AutoResize = True
$Aceptar.Text = ( "Aceptar" )
$Aceptar.Picture = Picture [ "icon:/small/apply" ]
$Aceptar.Tag = 1
$Estado = ESPERA
Me .Proxy = $hView
Me .Hide
End
Public Sub Pregunta( pregunta As String ) As Boolean
Me .Open ( pregunta)
While $Estado = ESPERA
Wait 0.1
Print " esperando"
Wend
Return $Respuesta
End
Public Sub Open ( Text As String )
Dim fTime As Float
$Respuesta = False
$sText = Text
Try $hIcon = Picture [ "icon:/32/question" ]
Me .H = 1
Me .Show
$H = Max ( $hIcon.H + Desktop .Scale * 2, Me .Font .RichTextHeight ( Text, Me .Parent .ClientW - Desktop .Scale * 4 - $hIcon.W ) + Desktop .Scale * 4)
If $bAnimate Then
fTime = Timer
While Me .H < H> 1
Me .H = H * ( 1 - Min ( 1, ( Timer - fTime) * 8) )
Wait
Wend
Endif
Me .Hide
Raise Close ( )
$sText = ""
$hIcon = Null
End
Public Sub View_Arrange( )
$hClose.Move ( $hView.W - ( $hClose.w * 2) - Desktop .Scale , ( $H - $hClose.H ) \ 2)
$Aceptar.Move ( $hView.W - $Aceptar.w - Desktop .Scale , ( $H - $hClose.H ) \ 2)
End
Public Sub CloseButton_Click( )
$Respuesta = False
$Estado = CANCELAR
Print "boton cancelar clicleado"
Close ( )
End
Public Sub Aceptar_Click( )
$Respuesta = True
$Estado = ACEPTAR
Print "boton aceptar clicleado"
Close ( )
End
Public Sub View_Draw( )
Dim X, W As Integer
W = Me .W - Desktop .Scale * 2
If $hIcon Then
Paint.DrawPicture ( $hIcon, Desktop .Scale , Desktop .Scale )
X += $hIcon.W + Desktop .Scale * 3
W -= $hIcon.W - Desktop .Scale * 2
Endif
Paint.DrawRichText ( $sText, X, Desktop .Scale * 2, W, Me .H - Desktop .Scale * 2, Align.TopLeft )
If $bSeparator Then
If Me .Y > 0 Then
If IsNull ( Me .Previous ) Or If Not Me .Previous Is Separator Then
Paint.FillRect ( 0, 0, Me .W , 1, Color.LightForeground )
Endif
Endif
If Me .Y + Me .H < Me .Parent .ClientH Then
If IsNull ( Me .Next ) Or If Not Me .Next Is Separator Then
Paint.FillRect ( 0, Me .H - 1, Me .W , 1, Color.LightForeground )
Endif
Endif
Endif
End
Private Function Animated_Read( ) As Boolean
Return $bAnimate
End
Private Sub Animated_Write( Value As Boolean )
$bAnimate = Value
End
Private Function Separator_Read( ) As Boolean
Return $bSeparator
End
Private Sub Separator_Write( Value As Boolean )
$bSeparator = Value
$hView.Refresh
End
Private Function Respuesta_Read( ) As Boolean
Return $Respuesta
End
Private Sub Respuesta_Write( Value As Boolean )
$Respuesta = Value
End
===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog:
http://novatocodegambas.blogspot.com.uy/
#9 Martes, 19 Abril 2016, 22:30
vicr
Técnico Programador
Registrado: Septiembre 2013
Mensajes: 158
Edad: 47
Re: Ayuda Con La Construccion De Clase "PreguntaView"
V3ctor, sin mirar mucho tu código veo que tienes cosas mezcladas.
Ahora, ante lo que pides:
Citar:
mi idea es esta:
if preguntaView.Open("quieres eliminar el archivo passwd?") then
delete archivo
else
no hacer nada
endif
Shordi te dice que Open lo tienes actualmente como un "sub" una rutina que no devuelve nada, por lo que tu idea inicial: ...
Citar:
if preguntaView.Open("quieres eliminar el archivo passwd?") then
...no funcionaría, si quieres que te devuelva un valor booleano debería ser una función "function" del estilo:
¿Como es el dicho? el bosque no te deja ver los árboles... ¿ o es al réves?... pero lo que te pasa es que estás tan metido en un GRAN problema que no lo has dividido en pequeñas partes y éstas solucionarlas de a poco.
Por cierto, esto no debería funcionar o está mal planteado:
Saludos a todos....
#10 Miercoles, 20 Abril 2016, 01:37
Temas parecidos
Temas parecidos
Página 1 de 2
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
No puede crear mensajesNo puede responder temasNo puede editar sus mensajesNo puede borrar sus mensajesNo puede votar en encuestasNo puede adjuntar archivosPuede descargar archivosNo puede publicar eventos en el calendario