III-Generando una previsualización funcional (PreviewHandler)

lunes, 27 de mayo de 2024 Sin comentarios
Share Button

INTRODUCCIÓN

Continuamos con el tema de las 2 últimas entradas. Visto el esqueleto del proyecto y probado que funciona (la carga, descarga y registro de la DLL) ahora nos queda generar una previsualización funcional. Hasta ahora hemos visto que podemos mostrar un formulario «vacío», ahora nos toca programar realmente la carga del fichero (según su tipo).

Os adjunto los links de todas las entradas de esta serie, que iré completando a medida que avance:

  1. Crear una Previsualización de ficheros en Windows
  2. «Registros» de una DLL de previsualización
  3. Generando previsualización funcional (PreviewHandler)

.

PROGRAMAR REALMENTE LA PREVISUALIZACIÓN

Con la estructura que tenemos del proyecto anterior, lo único que tenemos que hacer ahora es programar la carga y visualización de la información del fichero en el formato que queramos ofrecerla al usuario.
Para este primer ejemplo vamos a empezar con algo sencillo.
Realizaremos una previsualización de ficheros de log (*.LOG) que vamos a tratar como ficheros de texto plano.

Continuar leyendo…

II – «Registros» de una DLL de previsualización (PreviewHandler)

miércoles, 22 de mayo de 2024 Sin comentarios
Share Button

INTRODUCCIÓN

Continuando el tema de «Crear una Previsualización de ficheros en Windows», vamos a seguir completando esta serie, haciendo referencia al tema del registro que nos quedó pendiente en la anterior entrada.
Os adjunto los links de todas las entradas de esta serie, que iré completando a medida que avance:

  1. Crear una Previsualización de ficheros en Windows
  2. «Registros» de una DLL de previsualización
  3. Generando previsualización funcional (PreviewHandler)

 

Hablo de «registros» en el título de esta entrada, porque vamos a abordar por un lado, los cambios en el «registro de Windows» que debemos realizar para que nuestra DLL quede «inscrita» en el sistema (con esto le decimos al sistema, que cuando quiera visualizar un determinado fichero de extensión AAA, debe cargar nuestra DLL para mostrar ese contenido). Y en segundo lugar, veremos cómo registrar nuestra DLL en Windows a través de regsrv32.

.

CLAVES DE REGISTRO

Cuando registramos nuestra DLL (regsvr32) necesitamos modificar algunos valores en el registro de Windows para indicar al sistema que tiene una DLL disponible para utilizar cuando se le solicite una vista previa de un archivo con extensión AAA.
Para ello tenemos disponible esta documentación que explica los diferentes cambios a crear/borrar cuando realizamos el register/unregister.

https://learn.microsoft.com/en-us/windows/win32/shell/how-to-register-a-preview-handler
https://learn.microsoft.com/es-es/windows/win32/shell/how-to-register-a-preview-handler

Lo primero que debemos tener en cuenta, es que si nuestro controlador de Vista previa (de 32 bits) se está registrando en un sistema de 64 bits, tal y como se describe aquí, debe usar un IdApp diferente;

Continuar leyendo…

Categories: Código, DLL, Ejemplos, Windows Tags: , , ,

I – Creando una DLL de previsualización de ficheros (Preview Handler)

miércoles, 22 de mayo de 2024 Sin comentarios
Share Button

La idea de esta serie de entradas es ver todos los pasos necesarios para generar desde cero una DLL de Previsualización para Windows, de un determinado tipo de ficheros.

Antes de continuar os adjunto los links de las entradas de esta serie, que iré ampliando a medida que las vaya publicando:

  1. Crear una Previsualización de ficheros en Windows
  2. «Registros» de una DLL de previsualización
  3. Generando previsualización funcional (PreviewHandler)

¿A qué me refiero con eso de «PreviewHandler»?

Si abrimos el Explorador de Windows, para algunos tipos de ficheros que existen en nuestro equipo, el sistema operativo dispone de vista una previa desde el propio explorador. Nos permite ver el contenido del fichero de forma rápida, sin necesidad de abrir el programa asociado.
Al seleccionar una imagen o un fichero .INI en el explorador de Windows, si tenemos la previsualización activada, veremos directamente una «vista previa» de ese archivo sin necesidad de abrir otro programa.

Si por el contrario, el fichero no tiene vista previa definida, veremos un mensaje de Windows indicándolo. Algo similar a esto (varía dependiendo de la versión):

Continuar leyendo…

Delphi 12 Athens; Tratamiento de aplicaciones MDI

jueves, 4 de abril de 2024 Sin comentarios
Share Button

Interfaz MDI

Aunque seguro que no es una de las características más utilizadas hoy en día en los programas nuevos desarrollados en Delphi, es probable que tengamos programas antiguos que funcionan con esta interfaz de usuario. Yo mismo tengo alguno que todavía la usa.

Hasta ahora migrar esos programas a versiones nuevas podía ser un problema debido a que Microsoft ha declarado MDI como obsoleta y el funcionamiento no acaba de de ser el correcto. Problemas con el repintado, los estilos y con High DPI entre otros.

Para la versión 12 de Delphi se ha intentado solventar estos problemas implementando la solución desde el propio Delphi y no dejando que lo solvente Windows. El resultado no sólo es, que ahora ya podemos recompilar nuestras aplicaciones antiguas con la versión 12 y volver a tener lo mismo que teníamos antes, sino que con esta modificación, el resultado puede ser «mejor» todavía que el que teníamos en la versión antigua.
¿Porqué esto último?
Porque además de implementar las características del MDI para que funcionen correctamente, se ha añadido un nuevo componente, que si lo utilizamos (no es obligatorio), las mejorará sobre todo a nivel visual y de usabilidad.

Continuar leyendo…

El día de los Desarrolladores Delphi y C++ Builder 2024 en Madrid (Fotos)

lunes, 18 de marzo de 2024 Sin comentarios
Share Button

(Tened paciencia que como hay fotos tarda en cargar…)
Lo prometido es deuda, así que os adjunto algunas fotos del encuentro del pasado Jueves 14 de Marzo en Madrid.
Desde aquí mi felicitación a Danysoft por la organización del evento.

Las fotos no son de mucha calidad (que estaba pendiente de otras cosas  ;-D  ), pero espero que sirvan para que os hagáis una idea.

Continuar leyendo…

El Día de los Desarrolladores Delphi y C++ Builder 2024 (Madrid)

lunes, 11 de marzo de 2024 2 comentarios
Share Button

Para los que echabais en falta los eventos presenciales, pues hay buenas noticias.
El próximo día 14 en Madrid Danysoft ha organizado un evento completo para desarrolladores Delphi y C++ Builder.
La información completa la tenéis aquí.
Y el acceso al registro aquí.


Nos vemos allí.

Un saludo.

Categories: Delphi, Eventos Tags: , , ,

Librería GLibWMi v.3.2 actualizada para Delphi 12

jueves, 7 de marzo de 2024 Sin comentarios
Share Button

Actualización 18/03/2024
A día de hoy ya está disponible para descarga a través de GetIt para las últimas versiones de Delphi (inluídda la 12).

__________________________________________________________________

Ya hace unos meses que está disponible Athens, la versión 12 de RAD Studio.
Anunciar que ya está disponible para descarga desde Github, la versión 3.2 de la librería GlibWMI.
Debido a problemas técnicos el repositorio ha cambiado; el nuevo es este:
https://github.com/germanestevez/GLibWMI

Y el antiguo quedará obsoleto y estancado en la versión 3.0.

Tenéis la información completa en la sección de componentes del blog.
Espero que en breve esté disponible a través de GetIt, como las versiones anteriores (hasta ahora la 3.1).
Cualquier duda o comentario estoy a vuestra disposición.

Un saludo y hasta la próxima!

JSON Data Binding Wizard (Delphi 12)

martes, 19 de diciembre de 2023 2 comentarios
Share Button

Hace poco que ya está disponible la última versión de RAD Studio.

La versión 12 Athens trae bastantes novedades; Podéis ver la lista completa y explicada en la propia web de embarcadero:

En esta entrada me voy a centrar en el nuevo asistente «JSON Data Binding Wizard».
Anteriormente en otras entradas ya he realizado ejemplos para trabajar con ficheros JSON. A continuación os adjunto algunos links de entradas donde por diferentes necesidades he trabajado con archivos de este tipo:

Es junto al XML el formato más utilizado para intercambio de datos en la web y mayoritariamennte usado cuando descargamos información desde servidores REST mediante API, como se hace en las entradas anteriores.
Lo habitual en versiones antiguas de Delphi, es utilizar una librería externa ya que Delphi no la trae integrada (lkJSON, SuperObject,…) y en las versiones nuevas de Delphi ya se puede utilizar la que trae el propio Delphi (System.Json, REST.Json).

Lo que he necesitado hacer en esos ejemplos, es leer la estructura de datos y navegar por esa estructura jerárquica del JSON (similar al XML) e ir saltando por diferentes nodos hasta encontrar la información que necesitamos. Si el archivo es muy grande y la estructura compleja con muchos niveles, esta navegación (y su implementación puede ser más o menos compleja). Para escribir debemos completar los diferentes nodos de la estructura para finalmente generar el JSON.

Continuar leyendo…

Categories: Código, Delphi, JSON, OOP Tags: , ,

RAD Studio Live 2023 (Integración Continua)

miércoles, 15 de marzo de 2023 Sin comentarios
Share Button

El pasado 28 de Febrero se celebró el RAD Studio Live 2023 en Español.

Ya comenté sobre él y las diferentes charlas en la anterior entrada.

Por si no pudisteis asistir o por si queréis ver de nuevo alguno de los vídeos, ya se han publicado en el canal de Youtube de Embarcadero Latinoamérica.

La referente a «Integración continua con Delphi», que presenté yo mismo, también la podéis ver (formato original) en mi canal de youtube.

Igualmente aquí tenéis los enlaces individuales a los vídeos de la 4 charlas:

Espero que disfrutéis de todas ellas.

RAD Studio Live 2023 en Español (28 de Febrero)

jueves, 23 de febrero de 2023 Sin comentarios
Share Button

Pues ya está programado el RAD Studio Live en Español para este año 2023.

Será el día 28 de febrero y las sesiones desde las 17:00 hasta las 21:00 hora española.

Las sesiones y los ponentes son las siguientes:

La información en línea y el acceso al registro lo tenéis aquí.

Categories: Delphi Tags: , ,