Spanish (SOLUCIONADO) CLV Expandible - Error en tiempo de diseño.

Piluso

Member
Licensed User
Buenas tardes.
Siguiendo este ejemple de Erel sobre el uso de los Custom List Vuew desplegables...

Lo único que hice fue reemplazar los dos botones por un label y elimine las sub que coloreaban al CLV.
Y a continuación le agregue a una linea de código los parametros para que traiga los datos desde la BBDD. Eso lo hace bien y los muestra como quiero pero visualmente me cambia los tamaños de los label desplegados. Y me doy cuenta que el error es en tiempo de diseño porque según modifico los valores height del Panel y del Label contenido en el los cambios son notorios, pero los tamaños varían con cada ejecución del programa.

Screenshot_20200829-182358.png
Screenshot_20200829-174924.png


Y así es como los tengo en el diseñador...

Captura1.JPG
Captura2.JPG


Pido disculpas que paso las imágenes, pero no se como explicarme sin este recurso.

Una de las recomendaciones de Erel es que saquemos el AutoScaleAll del ítem, en el layout, si no entendí mal. Pero no encuentro como hacerlo y me parece que es eso los que me cambia los tamaños de los labels. Aclaro que los tamaños no siempre son iguales, a veces cierro y abro y los muestra bien y otras un desastre.

Saludos
 

Piluso

Member
Licensed User
Gracias por la respuesta pero nop.
Aparentemente no es eso. Le agregue al AutoScaleAll y sigue haciendo lo mismo.

Modifique el codigo para que mande siempre el mismo texto y no los datos de los campos (Row()) y sigue con lo mismo. Paso el codigo para ver si el error puede que este ahi.
1598793900230.png


B4X:
Sub GetRecord(hoy As String)
    Dim req As DBRequestManager = CreateRequest
    Dim cmd As DBCommand = CreateCommand("selectTurnos",Array(hoy))
    Wait For (req.ExecuteQuery(cmd, 0, Null)) JobDone(j As HttpJob)
    If j.Success Then
        req.HandleJobAsync(j, "req")
        Wait For (req) req_Result(res As DBResult)
        'work with result       
        'req.PrintTable(res)
'        Log(res.Columns)
        CLVTurnos.Clear
        Dim Encabezado As String
        Dim Cuerpo As String
        For Each row() As Object In res.Rows
            Encabezado= ""
            Cuerpo=""
            DateTime.TimeFormat = "HH:mm"
            DateTime.DateFormat  = "EEEE, dd"
'            FechaDD=DateTime.Date (row(1))
'            HoraDD = DateTime.Time (row(3))
'            FechaHH=DateTime.Date (row(2))
'            HoraHH= DateTime.Time (row(4))
'            Encabezado = row(5) & " - "& FechaDD& " - " & HoraDD& "Hs "
'            Cuerpo ="Organizado por :    "& row(6) & CRLF & "Finaliza el:   " & FechaHH & "  a las  " & HoraHH &CRLF& "Participantes involucrados :" &CRLF& row(7) & CRLF & row(8) & CRLF & row(9) & CRLF & "Cancha:   " & row(10)
            FechaDD=DateTime.Date (DateTime.Now)
            HoraDD = DateTime.Time (DateTime.Now)
            FechaHH=DateTime.Date (DateTime.Now)
            HoraHH= DateTime.Time (DateTime.Now)
            Encabezado = "Turno - "& FechaDD& " - " & HoraDD& "Hs "
            Cuerpo ="Organizado por :    Juan de los Palotes" & CRLF & "Finaliza el:   " & FechaHH & "  a las  " & HoraHH &CRLF& "Participantes involucrados :" &CRLF& "El Capitan Piluso" & CRLF & "Su Amigo Coquito" & CRLF & "Y el otro no me acuerdo" & CRLF & "Cancha:   1"
            Dim p As B4XView =  CreateItem( Encabezado , Rnd(100dip, 300dip) + 60dip, Cuerpo)
            CLVTurnos.Add(p, expandable.CreateValue(p, "some value"))
        Next
    Else
        Log("ERROR: " & j.ErrorMessage)
    End If
    j.Release
End Sub

Ya veremos que ocurre.
Saludos
 

Rubsanpe

Active Member
Licensed User
Hola.

B4X:
Dim p As B4XView =  CreateItem( Encabezado , Rnd(100dip, 300dip) + 60dip, Cuerpo)

Le estas pasando un valor aleatorio como altura del item. Creo que deberias realizar el calculo de la altura necesaria para cada item. Quizas con MeasureMultilineTextHeight.

Un saludo

Rubén
 

Piluso

Member
Licensed User
Selente lo suyo @Rubsanpe .

B4X:
Dim p As B4XView =  CreateItem( Encabezado , 260dip, Cuerpo)

No termino de entender bien como es el funcionamiento gral de este ejemplo y todavía los estoy estudiando, me pregunte varias veces porque usaba el random ahí, pero nunca se me ocurrió sacarlo para probar, y tampoco me di cuenta que estaba pasando la altura del desplegable .

Gracias a los dos por responder hoy domingo.
 
Top