Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - J. Elihu

Páginas: [1] 2
1
Hola a todos, quiero compartir un proyecto que desarrollé en VB6, se trata de cCraft, una clase que permite crear archivos PDF completamente desde cero, sin necesidad de bibliotecas externas ni dependencias pesadas.

📌 Características principales:
  • Generación de archivos PDF 1.4 desde código VB6 puro
  • Soporte para múltiples páginas
  • Texto con fuentes estándar (Helvetica, Courier, Times)
  • Dibujo de líneas y rectángulos
  • Inclusión de imágenes PNG con transparencia (usando GDI+)
  • Soporte opcional para compresión con zlib.dll o zlibwapi.dll
  • Posibilidad de reutilizar gráficos como marcas de agua mediante XObject Form
  • Justificación de párrafos y control de espaciado entre líneas

🔧 Ideal para quienes desarrollan en VB6 y necesitan exportar información en formato PDF sin instalar componentes adicionales.

📎 Repositorio en GitHub:
👉 https://github.com/JosueElihu/Craft-PDF

¡Cualquier sugerencia o mejora es bienvenida!


2
Visual Basic 6 / Re:Vb6NotifyIcon
« en: Marzo 17, 2023, 01:18:30 pm »
Saludos yokesee, acabo de publicar la version 1.5, donde se corrige lo que mencionas, ahora el icono se muestra usando por defecto un UID, si se quiere mostrar el icono usando un GUID, se debe asignar en la propiedad Guid de la clase. En windows 11 no he encontrado forma de mostrar el Tooltip personalizado, al parecer hay un error con el mensaje NIN_POPUPOPEN.

3
Visual Basic 6 / Re:Visual basic 6 y SQLite
« en: Enero 31, 2023, 07:01:39 pm »
Bienvenido al foro, Existen algunas opciones para integrar SQLite a VB6, por ejemplo: SQLite ODBC Driver + ADO, RichClient6, VBSQLite12 (kroll), y finalmente J3cnn (basado en las clases del ejemplo vbSqlite3.34 que mencionas, pero con muchas optimizaciones) puedes escoger la opción que mejor se ajuste a lo que buscas, RichClient6 y J3cnn permiten usar bases de datos cifrados de SQLite.

Ahora ¿obtienes algún error al ejecutar el ejemplo que mencionas? recuerda que debes incluir, aparte de las clases, la librería sqlite3.dll, que puedes descargarlo desde su página oficial. Adjunto un ejemplo sencillo para que lo puedas probar (si te pide iniciar sesión, le haces click en iniciar sesion como invitado).

https://archivos.vb6.work/files/J.Elihu/SQLiteSample.zip

¡Saludos! y larga vida a VB6

4
Con temor a equivocarme, la ruta local es diferente a la ruta de red, ejemplo:

Ruta local: C:\myApp\images\000.jpg
Ruta de red: \\PC01\myapp\images\000.jpg

¿Usas App.Path para especificar la ruta de las imágenes?

5
Visual Basic 6 / Vb6NotifyIcon
« en: Junio 24, 2022, 07:21:19 pm »
Esta es una clase que envuelve la api Shell_NotifyIconA y permite poner un icono en el area de notificación de windows, esta clase usa la estructura NOTIFYICONDATA version 4, y permite mostrar notificaciones con un icono personalizado (48px*48px) y permite mostrar una ventana personalizada en reemplazo del tooltip standard.

Agradecimientos a Leandro Ascierto por la funcion GetScreenDPI

Version 1.5
URL: https://github.com/JosueElihu/Vb6NotifyIcon.git








6
Visual Basic 6 / J3Cnn-Suite
« en: Mayo 18, 2022, 11:21:43 pm »
SQLite3 For VB6
Este es la versión completa de un conjunto de 3 dll’s Activex que permiten manipular base de datos de SQLite3, bases de datos cifradas de SQLCipher y bases de datos cifradas de SQLite3MultipleCiphers, no requiere de compilaciones personalizadas, se incluye el proyecto de ejemplo sobre su uso, básico y avanzado, tanto para base de datos cifrada y no cifrada, se incluye el módulo J3cnnLoader.bas que permite usar cualquiera de los tres componentes sin la necesidad de registrar la DLL ActiveX.

USO
Para usar cualquiera de estos componentes sin registrarlos en el sistema, añada la referencia a la dll e incluya las dlls requeridas en la carpeta o sub carpeta de su proyecto y añada a su proyecto el módulo J3cnnLoader.bas y listo.

También puede cargar cualquiera de los tres componentes desde una ruta personalizada con la API LoadLibrary() y el módulo se encargará de crear los objetos necesarios. En el módulo J3cnnLoader.bas existe la función LoadLib() que es un envoltorio que permite cargar librerías desde rutas personalizadas.

Puede descargar las versiones mas recientes de SQLite3, SQLCipher y SQLite3MultipleCiphers y usarlo con estos componentes.

Link:  https://github.com/JosueElihu/J3cnn-Suite



7
Visual Basic 6 / Re:NokilonServer
« en: Abril 05, 2022, 01:49:58 pm »
hi xxdoc

1. it's because the server takes the LIST command argument (-l) as an invalid argument, a little tweaking will fix that:

Código: [Seleccionar]
          If LenB(Args) Then
                Select Case LCase(Args)
                    Case "-a .", "-a", "-l": Args = vbNullString
                    Case Else
                   
                        If Left$(Args, 3) = "-a " Then Args = Right$(Args, Len(Args) - 3)
                        If Left$(Args, 2) = "-l" Then Args = Right$(Args, Len(Args) - 2)
                       
                        Args = Replace$(Args, "\", "")
                        Args = mvParseLocalPath(Args)
                        If Not PathExist(Args) Then
                            Send "450 Invalid file name or path"
                            If SOCKET_DATA Then RemoveSH SOCKET_DATA
                            Exit Sub
                        End If
                End Select
            End If

2. hIcon=0 because the icon has not been added in the resource file, I usually add the icon after compiling the project.

3. Yes, an FTP client is needed, some browsers no longer support FTP

4. I didn't understand what you want to do, send a byte array by DDE? I use the cDDE class to pass information from the server program to the interface, to show information about connections, commands, transfers

8
Visual Basic 6 / NokilonServer
« en: Abril 02, 2022, 10:41:09 pm »
NokilonServer
Es un Servidor FTP Creado en VB6, de fácil uso y configuración, con soporte para múltiples conexiones, transferencia de archivos mayores de 2GB, soporta conexiones en IPv4 e IPv6. Con la finalidad de ahorrar recursos en la memoria, se ha separado el proyecto en dos partes: Servidor e Interfaz. El programa servidor se ejecuta en segundo plano, la interfaz permite la configuración del servidor (Puerto, Velocidad de transferencia, usuarios) y permite visualizar los comandos enviados por el cliente y las respuestas enviadas por el servidor, también permite visualizar las transferencias realizadas y los usuarios conectados. La interfaz se comunica con el programa servidor a través de mensajes DDE. La idea de crear este servidor fue para transferir archivos entre la computadora y el teléfono Android, con la aplicación ESFileExplorer en una red local.

Para la base de datos requiere de SQLite3 y J3cnn.dll (Envoltorio personalizado de SQLite3 para VB6).





El servidor se ejecuta en segundo plano, y muestra un icono en el área de notificaciones, para acceder a la interfaz del servidor, haga doble clic sobre el icono, o clic derecho para desplegar el menú de opciones.


 
para acceder a la interfaz desde VB6 debe ejecutar el proyecto Servidor y el proyecto Interfaz.

Enlace: https://github.com/JosueElihu/NokilonServer



9
Visual Basic 6 / Vb6IconCreator
« en: Marzo 03, 2022, 08:56:53 pm »
Saludos amigos, les comparto una utilidad para crear íconos, hecho en VB6, y permite crear íconos de windows de 32bpp a partir de otras imágenes (png, bmp, jpg), cambiar el tamaño, duplicar y extraer íconos, importar íconos de recursos, exportar un elemento del paquete de íconos a png, bmp o ico, usa gdi+ para leer y convertir las imágenes.



Enlace: https://github.com/JosueElihu/Vb6IconCreator

10
Visual Basic 6 / Re:JGrid - Reemplazo a ListView
« en: Agosto 17, 2021, 01:34:17 pm »
I think 2.8 is much improved BUT I would like to see the 2.7 blue tracking bar instead of the current flat one. Is this possible?

Pending for the next version

11
Visual Basic 6 / Re:JGrid - Reemplazo a ListView
« en: Agosto 12, 2021, 02:21:54 pm »
buenas como puedo hacer para solucionar el siguiente problema, decidi implementar el JGRID en mi proyecto pero al hacerlo me da el error siguiente Ambiguous name detected WM_LBUTTONDOWN cuando trato de crear el objeto en tiempo de diseño

Hola Hardgeek, en la clase cSubclass hay un Public Enum ssc_eMsg, dentro de es enumeracion esta la constante  WM_LBUTTONDOWN  que debe estar en conflicto con otra constante publica del mismo nombre, borrar uno de ellos o simplemente comentarlo solucionara el asunto

Tambien quisiera saber como puedo cambiar el color de determinadas filas en el grid pues la propiedad forecolor solo cambia el color de todas las filas no de las que uno especifique

Para lograr eso el JGrid expone el evento ItemDraw y ItemDrawData, en el evento ItemDraw  puedes aplicar dibujos personalizados en la grilla, haciendo uso del Hdc o el hGraphics segun sea el caso.  En el evento ItemDrawData se envia al control algunos valores personalizado que serán usados para dibujar el item, lo que comentas se puede lograr en la v2.8 de la siguiente manera:

Código: [Seleccionar]
Private Sub JGrid1_ItemDrawData(ByVal Item As Long, ByVal Column As Long, ForeColor As Long, BackColor As Long, BorderColor As Long, ItemIdent As Long)
    If Column =1  Then ForeColor = vbRed
    If Column =2  Then BackColor = vbBlue
End Sub

Saludos!

12
Visual Basic 6 / Re:JGrid - Reemplazo a ListView
« en: Mayo 12, 2021, 09:23:37 pm »
Nueva Versión JGrid2.7..... Actualizado!  :) :) :) :) :) 8) 8) 8) 8)


13
Visual Basic 6 / Re:JGrid - Reemplazo a ListView
« en: Mayo 12, 2021, 09:05:32 pm »
Hola saludos, J. Elihu, una pregunta crees que podrias por favor acondicionar este control: https://github.com/Kr00l/VBFLXGRD

Se le puede agregar propiedades como:

1.- Ordenar en forma ascendente y descendente al hacer click en el encabezado de la columna.
2.- Agregar un Extendedlastcol similar al de VsFlexgrid8.
3.- Agregar alguna función para que el grid en tiempo de ejecucion o de diseño adquiera el thema de de Windows sin importar la versión.
4.- Que la fila seleccionado sea al estilo Windows 7. como en el caso de JGrid2020.

Muchas gracias caballero, agradecería y apreciaría su gran ayuda


Saludos Liza, siento responder recién tu mensaje, he estado viendo el proyecto en cuestión y esta terrible (tienen muchas cosas, me pierdo fácilmente entre todos eso modulos  ;D ;D) y eso complica un poco encontrar la forma como trabaja el control internamente, lo estaba revisando, me parece que crea el FlexGrid con apis, encontre esto:

Código: [Seleccionar]
VBFlexGridHandle = CreateWindowEx(dwExStyle, StrPtr("VBFlexGridWndClass"), 0, dwStyle, 0, 0, UserControl.ScaleWidth, UserControl.ScaleHeight, UserControl.hWnd, 0, App.hInstance, ByVal ObjPtr(Me))
Si es asi se podria quizas interceptando el WM_PAINT se pueda dibujar el header segun el tema de windows, pero habra que buscar la documentacion sobre la estructura de los columnheaders de FlexGrid.

en cuanto a la seleccion, aun no he encontrado el punto donde se dibuja la misma.

Como mencionaba, creo que se requiere bastante tiempo para estudiar y analizar este proyecto.


14
Visual Basic 6 / Re:JGrid - Reemplazo a ListView
« en: Mayo 12, 2021, 08:48:26 pm »
buenas puedes sacarlo en OCX? trate pero no funciona da error

Hola hardgeek, te envio el enlace del proyecto en la version activex, solo habia que cambiar las declaraciones: Control por tipo: Object, tambien le cambie los parametros del evento Scroll, que enviaban un argumento enum, y los reemplace por un argumento tipo long.

link: https://mega.nz/file/tkd0ERbZ#MywiTykWyNxqYq0bszmFVqVJIRrgnJujVHpd0VkQafE

15
Visual Basic 6 / Re:Ucimage
« en: Diciembre 16, 2020, 11:16:57 am »
Sí es posible, manipulando y recorriendo el array de bytes de la imagen. Por ejemplo: si un determinado pixel de la imagen es blanco, establecer a 0 la transparencia del pixel.

O quizás también sea posible aplicando una máscara al picture antes de renderizarlo.

Páginas: [1] 2