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 String) As 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,0) Else 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