![]() |
Uso de units para cada modulo
Hola amigos,
Intentando mejorar la forma en la que programamos en Delphi me surgio la siguiente duda: Como puedo separar las rutinas o procedimientos en diferentes unidades dependiendo del modulo que este programando? Ejemplo, Una aplicacion que maneje asistencia y nomina Tenemos la unidad principal, donde se escribiran las rutinas para la gran mayoria de los controles que tengamos, como botones, listas, combos etc. Tenemos procedimientos propios, como por ejemplo cargar de la BD los empleados en una lista del form principal que esta en la unidad principal. La pregunta en concreto es, como podria mover ese procedimiento de carga de empleados a otra unidad? Para ser mas explicito, tengo el TListBox en la UPrincipal donde se encuentra tambien el form, y seria ideal colocar el procedimiento de carga en la otra unidad.
Al colocar eso en otra unidad me da un monton de errores en el uses de la UPrincipal coloque UEmpleados, y en UEmpleados coloque la UPrincipal. Cualquier ayuda sera eternamente agradecida :) |
martini002,
Cita:
Revisa este código:
El código anterior en Delphi 7 sobre Windows 7 Professional x32, carga un TListBox de Form1 en Unit1 con un procedimiento de Unit2. Nota: En el caso planteado en el Msg #1, te sugiero crear un modulo de datos y referenciar este desde la unidad que lo requieras. Espero sea útil :) Nelson. |
Tenes dos alternativas:
A: Mandas por parametro un TStrings al cual se le vas a hacer el .Add(nombre empleado)
B: En ves de un procedure tenes una function la cual te retorna directamente la lista
No use nunca los componentes ZEOS, igual me los imagino muy similares a los ADO. El tema del TZQuery que creo en tiempo de ejecucion es porque el que estabas usando vos no lo conoce la unit UEmpleados. Poner en el uses el principal para poder acceder a ese componente query me parece muy mala idea, si tenes que usar el mismo procedimiento en otro form y por casualidad ese form no existe no vas a poder usar el ZQuery1. El connection para asignarle al query, es el TZConnection creo para ZEOS, que tendras en un DataModule, obviamente tenes que incluir la unit del DataModule en el uses Saludos! EDITO: Se me adelanto el compañero nelson :p |
Muchas gracias! Muy agradecido con ambos!
|
La franja horaria es GMT +2. Ahora son las 00:41:10. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi