Shell 18-07-2022, 16:47
Buenas!.

Cuando situamos un control nativo de Gambas sobre el formulario en modo diseño, podemos ampliar o reducir su tamaño,
pero no es un icono, es un "elemento" que reacciona cambiando su tamaño según ajustamos sus vértices con el ratón.
¿ Se comporta igual un control que hemos diseñado nosotros o tan solo es un icono  dentro de un marco ?.

Una cosa es el icono que aparece en la hoja de propiedades en la caja de los distintos grupos y otra cosa es el diseño que
lo representa al situarlo en el formulario. Si mi control es compuesto puede que no se muestre entero a la hora de ejecución.

Imaginar que mi control es un rectángulo de color azul, pues eso es precisamente lo que quiero ver en modo diseño,
un rectángulo que cambio el tamaño de sus lados al modificar los extremos del marco que lo contiene.

Saludos
Shell 17-07-2022, 13:41
Buenas!.

Un grupo de nombres de los archivo que aparecían en un ebook que tengo por aquí mostraba caracteres raros.
Las tildes. Decidí convertir el nombre a otros códigos de página, pero no parece un nombre de archivo con sentido al convertir el código de página. Sad

Adjunto el código del programa y el ejemplo para poder intentar solucionar el problema.
Utilizo para ello distintas codificaciones de página que me genera el comando iconv.

Código:
Private cuentafilas As Integer

Public Sub Form_Open()
 
  With grdTabla
    .Header = GridView.Both
    .Columns.Count = 3
    .Rows.Count = 0
    .Columns[0].Title = "Texto original"
    .Columns[0].W = 350
    .Columns[1].Title = "Codificación"
    .Columns[1].w = 150    
    .Columns[1].Alignment = Align.Center
    .Columns[2].Title = "Texto convertido a UTF-8"
    .Columns[2].W = 350
    .Columns[2].Alignment = Align.Center
  End With
 
End

Public Sub rellenarGridView(nombrefichero As String, datos As String[])
 
  Dim jc As String
  Dim conversion As String
 
  For Each jc In datos
    grdTabla.Rows.Count = cuentafilas + 1
    grdTabla[cuentafilas, 0].Alignment = Align.Left
    grdTabla[cuentafilas, 0].Text = nombrefichero
    grdTabla[cuentafilas, 1].Alignment = Align.Center
    grdTabla[cuentafilas, 1].Text = jc
    grdTabla[cuentafilas, 2].Alignment = Align.Center    
    Try conversion = Conv(nombrefichero, jc, "UTF-8")
    If Not IsNull(conversion) Then grdTabla[cuentafilas, 2].Text = conversion        
    If Error Then
      'No cuentes fila
      Continue
    Else
      cuentafilas += 1
    Endif    
  Next
  Label1.Text = "Total de conversiones: " & Str(cuentafilas + 1)
 
End

Public Sub Button1_Click()
 
  Dim archivo As String
  Dim juegodec As New String[]
  Dim tiposdecodificacion As String  
 
  'conv de gambas es un intermediario del comando iconv del sistema  
  'pasamos todos los códigos de página que existe a la variable
  Try Exec ["iconv", "--list"] To tiposdecodificacion
 
  'Copiado y pegado directamente el nombre del archivo en el editor de Gambas
  'No puedo pasar el archivo, ya que no tengo seguridad si es libre
  archivo = "Benito P‚rerz Gald¢s - Los Ayacuchos.epub"
 
  juegodec = Split(tiposdecodificacion, "\n", "//", True)    
  rellenarGridView(archivo, juegodec)
   
   'Esto salta siempre al final. No sé si es un error que viene del relleno del gridview
   'He tenido que anular su ejecución
  'If Error Then Message.Warning("No tienes instalado iconv en tu sistema!")
 
End

Si, la lista es larga. A ver si podéis ayudar con la manipulación de errores. Shy

Saludos
Archivos adjuntos
.gz
ConversionCodigoDePaginaNombreArchivo-0.0.1.tar.gz (Tamaño: 12.77 KB Descargas: 2)
Shell 16-07-2022, 14:38
Buenas!.

Antes de nada, decir que los video tutoriales son geniales. Ya han cumplido 6 años!.
 
He creado un ejemplo para hacer un control. Pero primero me puse a repasar los tutoriales de Shordi sobre la creación de un control
para entenderlo mejor, tanto el de crear un control simple como el compuesto (creo que me interesa este más, pero mejor empezar por el principio).

El vídeo tutorial trata de extender la clase TextBox añadiendo un valor de texto por defecto al control TextBox. El problema que me
encuentro (que en parte "creo" que es normal) es que después de crear la clase textdefault y crear una instancia en el formulario,
no muestra el mensaje "Hola mundo". Cuando en el vídeo tutorial lo hace perfectamente.

Lo que creo es que no se está asignando ese valor de la propiedad textdefault a la propiedad Text del TexBox.
Con eso no se debería mostrar nada. En cambio en el vídeo si lo hace. Huh

¿ Y eso cómo es posible ?.

Hice este pequeño cambio en la clase textdefault.

Código:
Export

Inherits TextBox

Property tdefault As String
Private $td As String

Private Function tdefault_Read() As String

  Return $td

End

Private Sub tdefault_Write(Value As String)
 
  $td = Value
  'Añado esta línea. Si es posible de otra forma comentar
  Super.Text = $td

End

Ahora si me funciona en la Gambas 3.17.2

Trampa traaaaaampa!. Que aparece código nuevo en el vídeo  por arte de magia en el constructor de la propiedad!. La pausa que refresca!. Rolleyes

Saludos
Páginas (564):    1 288 289 290 291 292 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 292
Último miembro: DarkWolf
Temas del foro: 1,742
Mensajes del foro: 9,029
Últimos temas
Ordenar en un TableView
Foro: General
Último mensaje por: Shordi, Ayer, 18:41
Respuestas: 3 - Vistas: 79
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 02-11-2025, 13:36
Respuestas: 9 - Vistas: 1,534
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,323
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 106
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.