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 06-08-2013
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Me quedo con mi solución, es cierto que requieres la unidad Forms, pero esa ya viene por defecto y el objeto Application se crea y regula automáticamente. Si ya viene con muchas otras opciones ¿Por qué no usarlo? Claro a menos que en ninguna parte de nuestro poyecto usemos la unidad citada, pero en todo caso todo se resumen e usar o no una unidad adicional (una de ellas nativa), ya sea "forms" o las de GHFreebrary. Al final en los dos casos se obtiene exactamente lo mismo.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #2  
Antiguo 06-08-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
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
Será que me gusta mucho la brevedad del código.
Responder Con Cita
  #3  
Antiguo 06-08-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
Será que me gusta mucho la brevedad del código.
A mí también.
Cada vez que tengo que usar extractfilepath o alguna función similar me da sensación de obsoleta.
Responder Con Cita
  #4  
Antiguo 08-08-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
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
ghISODateTime

Ocasionalmente necesitamos un valor de fecha y hora expresado en formato ISO, y a veces tomamos ese valor de lo que devuelve la función nativa Now (la fecha y la hora actuales) para darle tal formato con FormatDateTime.

Es decir, es normal y válido usar algo como esto:
Código Delphi [-]
F := FormatDateTime ('yyyy-mm-dd"T"hh:nn:ss', Now);
Pero podemos recurrir a algo más sencillo:
Código Delphi [-]
F := ghISODateTime;
No perdamos de vista que con frecuencia escribimos grupos de sentencias que contienen varias expresiones, a veces unas dentro de otras, en bloques de código fuente que pueden volverse algo complejos aunque se compongan de unas cuantas líneas. Cuando reducimos el tamaño de las expresiones (sin quitarles del todo su expresividad), conseguimos un código fuente más manejable.

Última edición por Al González fecha: 08-08-2013 a las 17:10:37.
Responder Con Cita
  #5  
Antiguo 08-08-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código Delphi [-]
F := ghISODateTime;
Lo bueno, si breve, dos veces bueno
Responder Con Cita
  #6  
Antiguo 10-08-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
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
ghRightOf

En esta página se propone una solución que conlleva cierta cantidad de código, dentro del cual se presenta esta función:
Código Delphi [-]
  function GetTagValue(const ATag: String): String;
  var
    p: Integer;
  begin
    p := pos('=', ATag);

    if p = 0 then
      Result := ''
    else
      Result := copy(ATag, p + 1, MaxInt);
  end;
Como puede verse, si la cadena dada contiene el símbolo "=", la función devolverá la subcadena que forman todos los caracteres que estén a la derecha de ese símbolo. Y de no incluir el símbolo de igualdad, entonces devolverá cadena vacía.

Observen cómo el código de dicha función puede reducirse a una sola sentencia si ponemos GHFRTL en el Uses:
Código Delphi [-]
  Function GetTagValue (Const ATag :String) :String;
  Begin
    Result := ghRightOf (ATag, '=');
  End;
La nueva GetTagValue hará exactamente el mismo trabajo, pero con menos esfuerzo por parte de quien escribe la función y sobre todo de quienes luego la lean.

Obtener lo que una cadena lleva a la derecha de un carácter específico es algo tan común, que justificó la existencia de la función ghRightOf.

Este hilo, como los demás, está abierto a cualquier duda o inquietud que deseen expresar.

Saludos.
Responder Con Cita
  #7  
Antiguo 16-10-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
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
ghEnable

Con la función ghEnable, de la unidad GHFUtils, podemos habilitar o inhabilitar un grupo de controles (componentes visuales), sin tener que escribir una instrucción "Control.Enabled := ..." por cada uno.

Tomo como ejemplo este caso, donde el código que se propone es esencialmente:
Código Delphi [-]
Procedure ...
Var
  B :Boolean;
Begin
  B := qry_edo_habestatus.value = 'DES';
  BTN1.Enabled := B;
  BTN2.Enabled := Not B;
  BTN3.Enabled := Not B;
  BTN4.Enabled := Not B;
  BTN5.Enabled := Not B;
  BTN6.Enabled := Not B;
End;
Usando GHF, podría reducirse a:
Código Delphi [-]
Procedure ...
Begin
  BTN1.Enabled := qry_edo_habestatus.value = 'DES';
  ghEnable ([BTN2, BTN3, BTN4, BTN5, BTN6], Not BTN1.Enabled);
End;
Como puede apreciarse, pasamos de siete a sólo dos instrucciones y nos ahorramos la variable de tipo Boolean. Así pues, escribimos menos código sin restarle demasiada comprensibilidad. Además, cuando se tenga la necesidad de agregar otro botón al grupo, tan sólo habremos de añadir una coma, un espacio y el nombre del botón, por ejemplo ", BTN7", en lugar de una sentencia completa "BNT7.Enabled := ...".

El uso de estas simplificaciones de código permite generar programas más concisos, y también más manejables a través del tiempo: No es lo mismo comenzar a modificar una unidad de 700 líneas de código que no habíamos abierto en cinco años, que hacer lo mismo con una unidad de 250 líneas. El código repetitivo puede ser un obstáculo importante a la hora de dar mantenimiento a los sistemas.

Saludos cordiales.
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
Sondeo sobre la biblioteca GH Freebrary Al González [GH Freebrary] 23 08-02-2015 21:12:03
GH Freebrary para Delphi XE4 Al González [GH Freebrary] 18 22-09-2014 18:24:04
GH Freebrary para Delphi XE2 Al González [GH Freebrary] 7 12-01-2014 08:49:35
Avanzando con GH Freebrary Al González [GH Freebrary] 13 23-03-2013 07:08:03
Introducción a GH Freebrary Al González [GH Freebrary] 0 18-03-2013 10:11:54


La franja horaria es GMT +2. Ahora son las 21:22:16.


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