Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Bibliotecas de código fuente > [GH Freebrary]
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Adaptar GHF a distintas versiones de Delphi

Sin duda este va a ser uno de los temas fuertes. Aunque tengo a mi disposición un Delphi 2007 Professional y un XE2 Enterprise, no he hecho nada importante con ella después de Delphi 7.

En 2012 le integré componentes de acceso a datos que pertenecían a otra biblioteca de mi autoría, siendo, a mi parecer, los dos más importantes TghDataSource por sus innovaciones y universalidad, y TghClientDataSet por la variedad de pequeñas mejoras que ofrece sobre el nativo TClientDataSet. La de 2012 fue una reforma total, refiné muy diversos aspectos de GH Freebrary, y dejé fuera por falta de tiempo muchas funciones de anteriores versiones que todavía tendrían vigencia.

Así que tenemos ahora una biblioteca de funciones, clases y componentes para programar en Delphi, no muy grande pero sí útil, que trabaja aceptablemente con la versión 7 de ese entorno de desarrollo y que ha llegado el momento de adaptar a versiones más modernas del mismo.

Uno de los principales retos es sin duda el manejo del estándar Unicode de las versiones 2009+. No me parece que sea un reto demasiado difícil, pero sí algo a lo que hay que tenerle ciertas consideraciones, dada la variedad de lugares donde una biblioteca de propósito general usa cadenas de caracteres. Y claro está, hay también una larga serie de pequeñas y lógicas incompatibilidades por resolver al movernos entre distintas versiones de un lenguaje tan amplio y potente como Delphi.

Creo que lo más sano será ir adaptando la biblioteca por partes, para que los usuarios de otras versiones del compilador gocen de sus beneficios sin tener que esperar a que todo el paquete esté 100% convertido. Pero mi pregunta es, ¿cuáles son las partes más valiosas por las que vale la pena comenzar? Tengo mi opinión al respecto, mas opto por escuchar primero la de ustedes, quienes ya han tenido la amabilidad de echar un vistazo. Y segunda pregunta, ¿hacia cuáles versiones de Delphi?

Saludos.

Al González.
Responder Con Cita
  #2  
Antiguo 23-03-2013
avmm2004 avmm2004 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Santa cruz de Tenerife, Islas Canarias
Posts: 500
Poder: 19
avmm2004 Va por buen camino
Yo creo que respecto a que partes ... nadie mejor que tu conoce las funcionalidades y utilidades y respecto a que versiones, hacerlas compatibles con algo anterior a delphi xe2 creo que no merece la pena.
Responder Con Cita
  #3  
Antiguo 25-03-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.003
Poder: 26
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Una preguntita. ¿Y Lázarus (o Free Pascal)? ¿Y Oxygene? O quizá sea pedir mucho.

La verdad es que no he visto cómo es la biblioteca.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 27-03-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por avmm2004 Ver Mensaje
[...] nadie mejor que tu conoce las funcionalidades y utilidades [...]
Hola Vicente. Aunque nada impide que otros colegas las conozcan también.

Cita:
Empezado por avmm2004 Ver Mensaje
[...] respecto a que versiones, hacerlas compatibles con algo anterior a delphi xe2 creo que no merece la pena.
En eso tengo mis dudas, pues la última encuesta no deja tan abajo a versiones como 2010 o XE. Pienso que eventualmente deberían cubrirse casi todas las versiones posteriores a la 7, pero comenzando por las más demandadas. ¿O cómo lo ves?

Cita:
Empezado por Ñuño Martínez Ver Mensaje
¿Y Lázarus (o Free Pascal)? ¿Y Oxygene? O quizá sea pedir mucho.
Hola Ñuño. Al ser un proyecto open source está abierto a ello:
Cita:
Empezado por Al González Ver Mensaje
[...] libre de ser utilizada en cualquier proyecto y de ser adaptada a cualquier otro lenguaje [...]
De momento nuestro amigo Rolphy Reyes estuvo revisando cuestiones de incompatibilidad para compilar en recientes versiones, un primer paso para darnos una idea de los obstáculos a salvar. Más adelante pondré aquí algo de lo que me ha compartido.

¿Más ideas de la ruta a seguir?
Responder Con Cita
  #5  
Antiguo 28-04-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Bueno, decir que hay cierto y modesto avance en el tema. Ya está disponible una primera y sencilla versión para Delphi XE2, la cual veremos de qué manera seguir ampliando.

Concerniente a este primer avance sobre versiones modernas de Delphi, rescato uno de los varios apuntes que Rolphy Reyes hizo durante una navegación exploratoria:
Cita:
Empezado por Rolphy Reyes
He sacado tiempo y he realizado una instalación (sin realizar prueba) del componente TghDataSource en Delphi 2010.

Tuve algunos Warnings y Errors, ojala Al pueda echar un vistazo, en la unidad GHFRTL en su mayoría pude corregirlos solo un Warning no pude corregir en el siguiente método:
Código Delphi [-]
      Function ghStr (Const Value, MinLength :Integer;
        Const PadChr :Char = '0') :String; Overload;
      Var
        AResult :PChar Absolute Result;
        I :Integer;
      Begin
     
        /// Para XE2 utilizar System._Str2Ext
        Str (Value:MinLength, Result); //<<--------- Aqui
     
        If PadChr = ' ' Then
          Exit;
     
        I := 0;
     
        While AResult [i] = ' ' Do
        Begin
          AResult [i] := PadChr;  // Direct writing on the unique string Result
          Inc (I);
        End;
      End;
Buscando referencia encontré en el wiki de Embardero la descripción del método y la salvedad (nota) de que era posible que dicha advertencia podía surgir, pero no su arreglo.

A manera general, cree un Package llamado GHFreebraryCore donde añadí todas las unidades para su compilación mas no pude completar el proceso porque existen demasiadas incompatibilidades de tipo de datos en el ClientDataSet por lo que procedí a crear el paquete GHFCoreDataSource donde si pude realizar la compilación de manera satisfactoria.

[...]

La buena noticia de todo esto es que se puede instalar el componente TghDataSource tanto para Delphi 2010 como XE1, dentro de poco me pondré a compilar para Delphi XE2.
Sobre la función que Rolphy me señalaba, encontré que la advertencia del compilador "Implicit string cast from X to Y" no supone riesgo alguno, e incluso dentro de algunas unidades nativas de la RTL puede verse una directiva que la desactiva:
Código Delphi [-]
unit System.WideStrUtils;

{$WARN IMPLICIT_STRING_CAST OFF}
Así que, después de estudiar el tema, hice lo propio en la unidad GHFRTL:
Código Delphi [-]
Unit GHFRTL;  { RTL }

{$Warn Implicit_String_Cast Off}

Sigamos entonces, ya hay avance en XE2. ¿Qué paso damos ahora? ¿Seguimos ampliando en XE2 o primero llevamos ese componente a otras versiones?

Saludos.
Responder Con Cita
  #6  
Antiguo 18-05-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Dadas las grandes expectativas que está despertando Delphi XE4, pienso que terminaré incluyéndola en el grupo de versiones más atractivas y confiables (en mi opinión) posteriores a la 7: 2010, XE2 y ahora quizá XE4 también. Creo que dedicaré parte de mis esfuerzos a que dispongamos, en esas tres modernas versiones de Delphi, de las mismas funcionalidades que tiene GH Freebrary en Delphi 7.

De esta manera quedará cierta facilidad para, en caso de requerirse, podamos luego adaptar la biblioteca a Delphi 2009, XE o XE3, tomando de base alguna de las versiones adyacentes.

Sería estupendo hacer esto junto con otros programadores de perfil bibliotecario que se comprometan, y que se animen a explorar el código al grado de resultarles familiar con el tiempo, enriqueciendo las discusiones técnicas que llevamos a cabo en este foro.

Podemos quedarnos contemplando las flamantes listas de ranking, o podemos fortalecer a Delphi y su comunidad ofreciendo soluciones que faciliten un poco el quehacer del programador.
Responder Con Cita
  #7  
Antiguo 18-05-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.264
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
Podemos quedarnos contemplando las flamantes listas de ranking, o podemos fortalecer a Delphi y su comunidad ofreciendo soluciones que faciliten un poco el quehacer del programador.
Buen punto
Responder Con Cita
  #8  
Antiguo 21-05-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Al González Ver Mensaje
Sería estupendo hacer esto junto con otros programadores de perfil bibliotecario que se comprometan, y que se animen a explorar el código al grado de resultarles familiar con el tiempo, enriqueciendo las discusiones técnicas que llevamos a cabo en este foro.
¿Alguna novedad? ¿Voluntarios?
Responder Con Cita
  #9  
Antiguo 21-05-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
¿Alguna novedad? ¿Voluntarios?
Estimado compañero, sólo una pregunta, has considerado hospedar el código de tus componentes en Github o un repositorio público donde todos pueden ver y descargar el código?
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #10  
Antiguo 21-05-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.609
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Chris Ver Mensaje
Estimado compañero, sólo una pregunta, has considerado hospedar el código de tus componentes en Github o un repositorio público donde todos pueden ver y descargar el código?
Hola Chris. Ya tengo el espacio reservado en BerliOS, pero de momento aquí todos pueden ver y descargar el código: http://terawiki.clubdelphi.com/Delph...H_Freebrary__/

Por ahora me resulta más práctico el FTP del club (que también es un repositorio público), pero, conforme crezca el proyecto, seguro llegará el momento de organizarlo mejor dentro de BerliOS.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como adaptar programa a distintas resoluciones djMadox API de Windows 1 16-08-2012 14:12:07
Delphi for Php, adaptar buscador incremental en grilla!! juanpy PHP 0 05-06-2012 22:15:28
Ejecutar distintas versiones de Firebird mjjj Firebird e Interbase 2 23-02-2012 21:38:05
BBDD de distintas versiones fjcg02 Firebird e Interbase 7 11-12-2007 19:47:38
manejar distintas versiones de un producto con compilación condicional.. pvizcay Varios 5 13-09-2006 16:34:00


La franja horaria es GMT +2. Ahora son las 19:52:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi