Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Donde crear procedimienos generales? (https://www.clubdelphi.com/foros/showthread.php?t=24780)

JavierO 02-09-2005 00:09:10

Donde crear procedimienos generales?
 
Hola a todos:

Quisieran que me orientaran con respecto a donde se deben de crear procedimientos generales que se va a estar utilizando en mi sistema, ya que algunos yo los tenia dentro de mi forma y otros los habia creado por separado en otro proyecto, tambien dentro de una forma para hacer pruebas, pero cuando los trato de utilizar al unir la forma a mi proyecto no esta reconociendo los controles que ya habia creado para hacer las consultas.

Estos procedimientos extraen información a una base de datos en Access.

Saludos y de antemano gracias

Sotrono 02-09-2005 01:47:48

Te lo explico con un ejemplo asi es mas facil

Código Delphi [-]
 Private
   procedure Prueba(s: string);
 Public
   //Lo declaras en Private o Public segun lo que necesites
 
 
 //Luego en Implementation lo declaras igual pero con el nombre del form antes que el nombre del procedimiento
 
 Implementation
 
 procedure TForm1.Prueba(s: string);
 begin
   label1.caption:= s;
 end;

Espero que te sirva. Saludos...

Crandel 02-09-2005 05:26:53

si son sólo procedimientos sueltos, podes crear una unit extra donde vas insertando todos los procedimientos. Despues lo que haces es llevarte esta unit de un proyecto a otro y listo.

Si estan relacionados, tambien podes crear una clase que te resuelva el problema.

Lepe 02-09-2005 18:11:19

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.


La franja horaria es GMT +2. Ahora son las 13:24:11.

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