Ver Mensaje Individual
  #3  
Antiguo 01-10-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
en Delphi: File --> New --> unit;

Código Delphi [-]
unit Codigoutil;
{-----------------------------------------------------------------------------
 Unit Name: Codigoutil
 Author:    Lepes
 Purpose:   Reunir funciones de muy comun uso bajo una sola Unidad.
 History:   Empezada el 23/10/2003
            Finalizada (creo que nunca se acabará  )
-----------------------------------------------------------------------------}

interface
uses Math, SysUtils,windows, stdCtrls, DBTABLES, DB; 
//  uses que necesitas porque el tipo de dato está antes del Implementation.
     

  // Tipo de datos publico accesible desde otras unidades
  type TMovidos = record
          desde, donde :Integer;
  end;


//funciones publicas que se acceden solo con añadir el uses de esta unidad
function CreateTemporalFile(const APrefix: string): string;
function GetTemporalFilename: string;

implementation

uses strUtils; 
// uses que hacen falta en la parte de implementation.
// porque uso funciones que estan declaradas en otro sitio
// o porque uso tipos de datos en el interior de las funciones
// que estan declarados en otras unidades.

{-----------------------------------------------------------------------------
  Proc:       CreateTemporalFile
  Autor:      Lepes
  Argumentos: const APrefix: string (3 caracteres máximo)
  Result:     string

  Propósito: Crear un fichero temporal con nombre unico
-----------------------------------------------------------------------------}
function CreateTemporalFile(const APrefix: string): string;
var
   TempPath, TempFile: array [0..MAX_PATH-1] of Char;
begin
   GetTempPath(SizeOf(TempPath), TempPath);
   if GetTempFileName(TempPath, PChar(APrefix), 0, TempFile) = 0 then
      RaiseLastOSError;
   Result := string(TempFile);
end;

{-----------------------------------------------------------------------------
  Proc:       GetTemporalFilename
  Autor:      Lepes
  Argumentos: None
  Result:     string

  Propósito: Obtener un Nombre de fichero único
  Tambien puede interesar:
  utilizar la función CreateFile, del API de Windows, y hacer uso de la opción
  FILE_FLAG_DELETE_ON_CLOSE. Los ficheros creados con este atributo se borran
  automáticamente cuando se cierran
-----------------------------------------------------------------------------}
function GetTemporalFilename: string;
var
   TempPath: array [0..MAX_PATH-1] of Char;
   G: TGuid;
begin
   GetTempPath(SizeOf(TempPath), TempPath);
   OleCheck(CoCreateGuid(G));
   Result := string(TempPath) + GuidToString(G);
end;

end.

Ahora solo queda guardarla con el nombre CodigoUtil.pas, y añadir la carpeta a : Tools --> enviroment Options --> library --> library path

Para que encuentre la unidad codigoutil al añadirlo en el uses de otras unidades.

Manualmente tambien puedes usar: Project --> Add to project y elegir el archivo codigoutil.

Por supuesto te aconsejo crearte varias librerias segun el tipo de rutinas que vas a incluir (tratamiento de cadenas, de bases de datos, tratamiento de rutas de archivos, etc.) y llamar las unidades de una forma homogenea con un prefijo, por ejemplo, todas mis librerias se llaman LPObjetos, LPConstantes, etc. (LP = Lepes)

En cuanto a crear Clases, es mejor no mezclarla con funciones publicas para no engorronear el archivo. Normalmente las clases las defines en otro archivo .pas que no sea el mismo.
Responder Con Cita