alberto-moyano 17-03-2024, 01:51
Hola gente, tengo la siguiente función (que es una adaptación de un aporte de Tincho), la cuestión es que no obtengo error alguno, pero tampoco hace lo que espero.

En concreto, se supone que lee un directorio a través de un path (revisado que existe en otra función) y listar los archivos que encuentra en un menú existente en el formulario.

Código:
Public Sub ShowFilesMenu()

  Dim strPath As String

  strPath = rutaScriptsExternos
  ShowFilesMenuWithPath(strPath)

End

Public Sub ShowFilesMenuWithPath(strPath As String)

  ShowFilesMenuInternal(strPath)

End

Public Sub ShowFilesMenuInternal(strPath As String, Optional stxExt As String[], Optional bolRec As Boolean)

  Dim stxFiles As New String[]
  Dim strFile As String
  Dim i As Integer

  stxFiles = RListFiles(strPath, stxExt, bolRec)

  Dim oMenu As New FMain.Menu77 'indico el menú donde se mostrara el listado de archivos

  For Each strFile In stxFiles
    Dim oMenuItem As Menu77
    oMenuItem = oMenu.Add(MenuFileFromPath(strFile))
    oMenuItem.Tag = strFile
    Connection(oMenuItem, "Activate", Me, "OpenFile")
  Next

End

Public Sub OpenFile(sender As Object)

  Dim strFilePath As String

  strFilePath = Sender.Tag

End

Private Function MenuFileFromPath(strFilePath As String) As String
  ' Esta función toma un camino completo de un archivo
  ' y devuelve solo el nombre del archivo para mostrar en el menú.

  Dim strFile As String

  strFile = File.Name(strFilePath)
  Return strFile

End

Public Function RListFiles(strPath As String, Optional stxExt As String[], Optional bolRec As Boolean) As String[]

  Dim stxTmp As New String[]
  Dim stxFiles As New String[]
  Dim strFile As String
  Dim strExt As String

  stxTmp.Clear
  stxFiles.Clear

  strPath = ArrangePath(strPath)

  Select Stat(strPath).Type
    Case gb.File
      strPath = File.Dir(strPath)
  End Select

  If stxExt <> Null Then
    Select stxExt.Count
      Case 0
        If bolRec = True Then
          stxTmp.Insert(RDir(strPath, "*.py"))
        Else
          stxTmp.Insert(Dir(strPath, "*.py", gb.File))
        Endif

      Case Else
        For Each strExt In stxExt
          If bolRec = True Then
            stxTmp.Insert(RDir(strPath, "*." & strExt))
          Else
            stxTmp.Insert(Dir(strPath, "*." & strExt, gb.File))
          Endif
        Next

    End Select
  Else

    If bolRec = True Then
      stxTmp.Insert(RDir(strPath, "*.py"))
    Else
      stxTmp.Insert(Dir(strPath, "*.py", gb.File))
    Endif
  Endif

  For Each strFile In stxTmp
    Select Stat(strPath &/ strFile).Type
      Case gb.File
        stxFiles.Add(strPath &/ strFile)
    End Select
  Next

  Return stxFiles

End

Public Function ArrangePath(strPath As String) As String

  If Right(strPath, 1) <> "/" Then
    strPath &= "/"
  Endif
  Return strPath

End

Alguna idea de por donde vienen los tiros
Shell 16-03-2024, 22:52
Buenas!.

Cuando tenemos tropecientos registros que se muestran en un GridView. Y mediante el ratón vamos
moviendo la barra de desplazamiento vertical, vamos a saltos. Hasta llegar a la parte inferior, superior, o
donde nos paremos. ¿ Y si queremos ir directamente hasta el último ?.

Si que se puede ir hasta el final de todos los registros, directamente.
Fijaros, pulsáis el botón derecho sobre la barra y aparecerá este menú.

[Imagen: WlJuNXS.png]

In English, of course. Usando Scroll here.  Te llevará hasta donde quieras, sin tener que ir a saltos.
Ese menú no está traducido. No me suena de haberlo visto antes. No parece algo fácil de ver.

Saludos
paskola 14-03-2024, 21:18
Hola, recién me suscribí a este foro para aprender más de Gambas. Empiezo por decir que programador no soy sino que hago tareas de sysadmin/dba pero no le temo a tomar un lenguaje de programación para automatizar tareas muy rutinarias. Con eso también quiero decir que mi código no va ser el más bonito. Hoy quiero compartir esta pequeña aplicación que hice para generar contraseñas, que en realidad es un frontend para el programa pwgen que pueden encontrar en cualquier distro de Linux. Como parte de mis actividades debo estar generando usuarios con distintos niveles de complejidad y a los que aveces es encesario no incluir ciertos carácteres. Probé muichas herramientas para esto y finalmente decidi crearme una pequeña app en Gambas que me genera un listado de contraseñas con las especificaciones que le defino. Es miuy sencilla, puede fallar y, debo admitir que es fea. Apreciaría todos sus comentarios, ya de hecho estoy haciendo cambios basado en ejemplos que pude encontrar en este foro lo que agradezco profundamente. 

Anexo va el proyecto en formato tar.gz y un pequeño screenshot de la aplicación. Por el momento mi distro es Archlinux con Plasma 6.

Gracias por su atención
Archivos adjuntos
.gz
Genpasswd-0.0.16.tar.gz (Tamaño: 9.54 KB Descargas: 4)
Páginas (557):    1 91 92 93 94 95 557   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 284
Último miembro: VALENTIN KORONADO
Temas del foro: 1,719
Mensajes del foro: 8,920
Últimos temas
Publicidad
Foro: Sobre gambas-es.org
Último mensaje por: Shordi, 18-06-2025, 07:35
Respuestas: 5 - Vistas: 124
Web con gambas, a ver si ...
Foro: WebApp/WebForms
Último mensaje por: jackrobot, 16-06-2025, 17:11
Respuestas: 40 - Vistas: 31,676
Un sistema de ayudas cont...
Foro: Videotutoriales
Último mensaje por: Shordi, 30-05-2025, 13:22
Respuestas: 0 - Vistas: 168
Crear una aplicación para...
Foro: Bases de Datos
Último mensaje por: Shell, 29-05-2025, 20:11
Respuestas: 11 - Vistas: 1,185
Paso de parámetros a una ...
Foro: General
Último mensaje por: guizans, 29-05-2025, 19:27
Respuestas: 9 - Vistas: 730
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.