Spanish Problemas con BetterCustomDialog

Discussion in 'Spanish Forum' started by JMMF, Apr 22, 2019.

  1. JMMF

    JMMF Member Licensed User

    Hola a todos.
    He realizado un módulo clase estándar para introducir los datos, con un DialogsInput y customdialog de Better.
    Me funciona de lujo primera especial. PERO el ScrollView2D de customdialog No consigo que se desplaze.
    ¿Alguien sabe donde estoy metiendo la pata?

    Este es el código del módulo clase estándar.
    Code:
    Sub Class_Globals
    '__________BetterDialogsInput
        Private BetterDialogs1 As BetterDialogs             'Trabajos con Dialogos (Libreria BetterDialogs )
        Private IP As BD_InputBoxParams                'Trabajos con Dialogos (Libreria BetterDialogs )
        Dim MyCursorPantallas As Cursor
        
    Dim DR As Int
        
    Dim IP1 As String
    '__________BetterDialogsRadioButton
        Private SVCheckBox As ScrollView2D                'Trabajos con ScrollView
        Dim GD As GradientDrawable
        
    Dim RadioBotonRespuestaTexto, RadioBotonRespuestaPosicion As String
        
    Dim EsUnico As Boolean
     
    End Sub

    Public Sub Initialize(MySQL As String)
        MyCursorPantallas=Main.MySQLMain.ExecQuery(MySQL)
    End Sub

    '++++++++++++++++++++ BetterDialogsInput ++++++++++++++++++++++++++++++++++++++++ BetterDialogsInput ++++++++++++++++++++
    Public Sub Input(Posicion As Int,Texto As String)
        MyCursorPantallas.Position = Posicion
        IP.Initialize
        IP.Default = Texto                                
    'Texto
        IP.HintColor = Colors.Red                            'Color de la Insinuación
        IP.InputTextSize = Modulo1.IntToDIP(30)                    'Tamaño de letra del Input
        IP.Gravity = Gravity.CENTER_VERTICAL + Gravity.CENTER_HORIZONTAL    'Horientacion
        IP.Multiline = False                                'Multiples lineas
        IP.QuestionTextSize = Modulo1.IntToDIP(30)                'Tamaño de letra de la Pregunta
        IP.SpaceBetween = 4dip                                'Espacio entre la Pregunta y el Input.
        IP.ValidationCallback = "Input_Validation"                'Validar datos
        IP.WithSuggestions =True                            'Teclado con Sugerencias
        IP.Format = MyCursorPantallas.GetString ("Format")            'Formato
        IP.Hint = MyCursorPantallas.GetString ("Hint")                'Insinuación
        IP.Question = MyCursorPantallas.GetString ("Question")        'Pregunta
        Select MyCursorPantallas.GetString ("Teclado")                'Tipo de teclado
            Case 1 'Numeros con decimales
                IP.InputType = IP.INPUT_TYPE_DECIMAL_NUMBERS
            
    Case 2 'Numeros
                IP.InputType = IP.INPUT_TYPE_NUMBERS
            
    Case 3 'Numeros con signos
                IP.InputType = IP.INPUT_TYPE_NUMBERS_WITH_SIGN
            
    Case 4 'Telefono
                IP.InputType = IP.INPUT_TYPE_PHONE
            
    Case 5 'Texto
                IP.InputType = IP.INPUT_TYPE_TEXT
            
    Case 6 'Texto con 1º letra mayuscula
                IP.InputType = IP.INPUT_TYPE_TEXT_WITH_CAPS
        
    End Select
        
        
    If MyCursorPantallas.GetString ("Necesario") = "True" And IP.Default = "" Then
            DR = BetterDialogs1.InputBox(MyCursorPantallas.GetString (
    "Nombre") & " " & Main.TituloAdicionalImput, IP, "Ok""""""")
        
    Else
            DR = BetterDialogs1.InputBox(MyCursorPantallas.GetString (
    "Nombre") & " " & Main.TituloAdicionalImput, IP, "Ok""Cancelar""""")
        
    End If
        
    If DR = DialogResponse.POSITIVE Then
            IP1 = IP.CompactAnswer.Replace(
    "'","´")
        
    Else
            IP1 = Texto
        
    End If
    'Me da mucha rabia que el teclado se quede visible, por eso confirmo que se cierra.
        Dim TecladoSoft As IME   
        TecladoSoft.Initialize(
    "")
        TecladoSoft.HideKeyboard
    End Sub
    '__________Valida el BetterDialogs
    Sub Input_Validation(Answer As String, CompactAnswer As StringAs String
        
    If CompactAnswer.Length>MyCursorPantallas.GetString ("Caracteres"Then
            Modulo1.Sonido_Error
            
    Return CompactAnswer.Length & " Carácteres." & CRLF & "Maximo " & MyCursorPantallas.GetString ("Caracteres") & " carácteres"
        
    Else If CompactAnswer = "" And MyCursorPantallas.GetString ("Necesario")= "True" Then
            Modulo1.Sonido_Error
            
    Return "No puede estar vacio"
        
    Else
            
    Return ""
        
    End If
    End Sub
    '++++++++++++++++++++ BetterDialogsRadioButton ++++++++++++++++++++++++++++++++++++++++ BetterDialogsRadioButton ++++++++++++++++++++
    Public Sub CheckBox(L As List, Selecciones As String, Mensage As String)
        
    If Selecciones = "-1" Then EsUnico = True Else EsUnico = False
    'Dimensiona los controles
        Private PnlCheckBox As Panel
        GD.Initialize(
    "TL_BR",Array As Int(Colors.DarkGray,Colors.Black))
        PnlCheckBox.Initialize(
    "PnlCheckBox")
        PnlCheckBox.Height = 
    100%y
        PnlCheckBox.Width = 
    100%x
    'Dimensiona las posiciones
        Dim Izquierda As Int = 0                'Left
        Dim Arriba As Int = PnlCheckBox.Height /16    'Top
        Dim Ancho As Int = PnlCheckBox.Width/8        'Width
        Dim Alto As Int = PnlCheckBox.Height /16    'Height
    'Crea el boton Ok
        Dim btnOK As Button
        btnOK.Initialize(
    "")
        btnOK.Background = GD
        btnOK.Text = 
    "<Font Color='Yellow'>O</Font>K"
        btnOK.TextColor = 
    Colors.White
    'Crea el PnlRadioButton
        If L.Size>9 Then
            PnlCheckBox.Height=Alto*
    9
        
    Else
            PnlCheckBox.Height=Alto*L.Size
        
    End If
        PnlCheckBox.Width = Ancho*
    6
        PnlCheckBox.Background=GD
    'Crea los RadioButton
        SVCheckBox.Initialize(PnlCheckBox.Width,L.Size * Alto,"SVCheckbox")
        PnlCheckBox.AddView(SVCheckBox,
    0%x,0%y,100%x,100%y)
        SVCheckBox.FadingEdges(
    True)
        
    Dim CheckBoxSeries(L.Size) As CheckBox
        Arriba = 
    0
        
    Dim Cambiar As Int = 0
        
    For i=0 To L.Size-1
            
    Dim CheckBox1 As CheckBox
            CheckBox1.Initialize(
    "CheckBox1")
            CheckBox1.Text = 
    "     " & L.Get(i)
            CheckBox1.TextSize = Modulo1.IntToDIP(
    30)
            CheckBox1.Tag = i
            CheckBox1.TextColor = 
    Colors.White
            CheckBox1.Checked = 
    False
            
    If EsUnico = False Then
                
    If Selecciones.IndexOf(i)<>-1 Then CheckBox1.Checked = True
            
    End If
            
    If Cambiar = 0 Then CheckBox1.Color=Colors.ARGB(50,0,0,0Else CheckBox1.Color=Colors.ARGB(100,0,0,0)
            CheckBoxSeries(i)=CheckBox1
            SVCheckBox.Panel.AddView(CheckBox1,Izquierda,Arriba,PnlCheckBox.Width*
    2,Alto)
            Arriba = Arriba + Alto
            Cambiar = 
    1 - Cambiar
        
    Next
    'Crea los CustomDlgParams
        Dim dlgParams As BD_CustomDlgParams
        dlgParams.Initialize
        dlgParams.Title = Mensage
        dlgParams.Background = 
    Colors.Transparent
        dlgParams.DialogGravity = 
    Gravity.CENTER_HORIZONTAL + Gravity.CENTER_VERTICAL
        dlgParams.MarginHeight = 
    1%x
        dlgParams.DialogBody = PnlCheckBox
        dlgParams.BodyWidth = PnlCheckBox.Width
        dlgParams.BodyHeight = PnlCheckBox.Height
        
    If EsUnico = False Then    dlgParams.PositiveButton = btnOK

        DR = BetterDialogs1.CustomDialog(dlgParams, 
    "CheckBox")
    'Rellena las respuestas
        RadioBotonRespuestaTexto = ""
        RadioBotonRespuestaPosicion = 
    ""
        
    For i=0 To L.Size-1
            
    If CheckBoxSeries(i).Checked = True Then
                
    If RadioBotonRespuestaTexto = "" Then
                    RadioBotonRespuestaTexto = CheckBoxSeries(i).Text.Trim
                    RadioBotonRespuestaPosicion = CheckBoxSeries(i).Tag
                
    Else
                    RadioBotonRespuestaTexto = RadioBotonRespuestaTexto & 
    ":" & CheckBoxSeries(i).Text.Trim
                    RadioBotonRespuestaPosicion = RadioBotonRespuestaPosicion & 
    ":" & CheckBoxSeries(i).Tag
                
    End If
            
    End If
        
    Next
    End Sub
    '__________Controla la tecla ATRÁS
    Sub CheckBox_BackKeyPressed As Boolean
        Modulo1.Sonido_Error
        
    Return True 'Previene la cancelación del diálogo.
    End Sub

    Sub CheckBox_Closing(DlgResponse As Int) As Boolean
        
    Return True 'Falso cancelaría el cierre.
    End Sub
        
    Sub CheckBox1_CheckedChange(Checked As Boolean)
        
    'Dim RB As CheckBox = Sender
        If EsUnico = True Then
            BetterDialogs1.CloseDialog(
    DialogResponse.POSITIVE)
        
    End If
    End Sub
    Y accedo desde varios módulos de actividad así.
    Code:
    Lista.Initialize2(Array("XXL","XL","L","M","S","RTS.","SUC."))
                        inputClase1.CheckBox(Lista,Crianza,
    "Seleccione una familia")
                        LblSeries(Lbl1.Tag).Text = inputClase1.RadioBotonRespuestaTexto
    Gracias.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice