Ver Mensaje Individual
  #4  
Antiguo 02-09-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Yo tengo creada una carpeta llamada "PAS UTILES", dentro de ella creo varios archivos .pas:

- Lpfonts (rutinas para el manejo de fuentes)
- Lpfiles (rutinas para busquedas de archivos etc)
- LpPaths (rutinas para el manejo de caminos)

el prefijo LP es lógicamente de "Lepe", así no interfiere nunca con las originales de delphi ni con terceros. Por supuesto esa carpeta la añado al Library Paths de delphi, y la meto en E:\delphi\pas utiles, por si windows me da un susto, que no sea muy grande .

En cada proyecto, solo tengo que añadir la unidad que necesite a los "uses" y listo.

Existe un detalle a tener en cuenta: Al hacerlo así, no puedo modificar una rutina para un proyecto determinado, porque afectaría a todos los programas al recompilarlos. Esto no es un inconveniente.... Si algo tiene que se modificado, es porque no estaba bien diseñado , así que dedico siempre unos minutos a analizar una nueva rutina que quiero meter en esas unidades.

Si la rutina es solo para un proyecto, en ese proyecto añado una unidad nueva llamada publica, y coloco la rutina dentro. Si puedo hacer una rutina muy general, entonces la meto en PAS UTILES.

Un problema concreto, siempre puede ampliarse a uno más general, así que el concreto se mete en "publica" y el general en PAS UTILES, es decir, hago 2 rutinas para un mismo propósito, y las separo de ubicación:

Problema: Buscar los archivos de tipo *.txt de una carpeta:
- en PAS UTILES: buscar archivos por extensiones, devolviendo un StringList con todas las ocurrencias, posiblidad de recursion de carpetas.
- en PUBLICA: una llamada con BuscarArchivos('c:\sistema\', '*.txt', recursionAfalse, ElStringlist) y ahora hago lo que quiera con esos resultados.

Si al implementar la rutina BuscarArchivos, no tengo tiempo suficiente, puedo diseñarla así:
Código Delphi [-]
procedure BuscarArchivos(const ruta:string; 
                                   const TiposDeArchivos:String);

Cuando tenga más tiempo, siempre puedo ampliarla de esta forma:
Código Delphi [-]
procedure BuscarArchivos(const ruta:string; 
                                   const TiposDeArchivos:String
                                   const Recursiva:Boolean = false);
Como el último parámetro es opcional, no afecta a los programas que ya usen la rutina.

No es nada nuevo, basta fijarse en las librerias NKLIBS, RXLIBS, JCL etc.

Un saludo.

Última edición por Lepe fecha: 02-09-2005 a las 18:16:18.
Responder Con Cita