PDA

Ver la Versión Completa : ¿Como puedo llamar un Procedure desde otra unit?


athal
15-05-2004, 20:25:25
Tengo un aplicacion con tres forms, cada uno tiene sus propios procedimientos , pero me gustaria llamar un procedimento declarado en la Unit1.pas desde la Unit2.pas para no duplicar codigo. HE intentado declararlo como publico en la unit1.pas pero no se hacerlo bien y no me funciona.

Agradezco sugerencias !!!

delphi.com.ar
15-05-2004, 20:51:06
Solo tendrías que usar la unit (Alt+F11 o escribiéndola en el uses), y todas las funciones que esten declaradas en la interface se verán desde la otra unit.

Saludos!

jachguate
16-05-2004, 04:06:18
pero no se hacerlo bien y no me funciona.
Que significa esto exactamente??? que no compila? cual es el mensaje de error?

athal
16-05-2004, 20:27:04
O sea mi problema exactamente es :

Tengo el procedure buscar_Archivo(encontrado) en la unit1 y quiero llamarla desde la Unit2 .

He añadido Uses Unit1 a la Unit2 pero todavia asin sigue sin encontrarme la función.

He probado añadiendo la declaración en "PUBILC" de la unit1 pero tampoco.

ME FALTA UN DETALLE Y NO SE CUAL ?

kinobi
16-05-2004, 22:01:54
ME FALTA UN DETALLE Y NO SE CUAL ?

Sí, te falta un detalle ...

... cual es el mensaje de error?

Saludos.

athal
16-05-2004, 22:29:11
Error Unit3.pas(32): Unsatisfied forward or external declaration:'Tform3.Buscar_archivo'

y que falta ???

delphi.com.ar
16-05-2004, 22:38:41
He probado añadiendo la declaración en "PUBILC" de la unit1 pero tampoco.
Yo te diría que no se trata de probar sinó de leer un poco, te recomiendo este hilo: http://www.clubdelphi.com/foros/showthread.php?t=10278

Saludos!

athal
16-05-2004, 23:02:54
He leido atentamente ese hilo, y la base teorica muy buena pero no me ha resuelto el problema ( sera que soy un poco tontito ) alguien puede ilustrarme con un ejemplo
:-)

Gracias !!

eduarcol
16-05-2004, 23:15:36
eso es que en form3 lo tienes declarado pero no tienes el cuerpo del procedimiento, eb form3 no lo debes declarar solo utilizarlo

athal
16-05-2004, 23:39:32
Si hago lo que me dices contesta :

"Undeclared Itinfier Buscar_archivo "

y me quedo igual.

GRacias de todos modos !!!

delphi.com.ar
17-05-2004, 00:55:46
Una unit en delphi esta dividida principalmente en dos secciones interface e implementation, digo principalmente porque también pueden aparecer explícitamente las secciones initialization y finalization.
En la sección interface se declaran las constantes, tipos, variables, procedimientos y funciones que serán vistas desde otras units. No se puede poner código en esta sección, solo declaraciones.
En la sección implementation se implementan todos los procedimientos y funciones definidos en interface, también se pueden definir constantes, tipos, variables, procedimientos y funciones que solo serán vistos en la implementación de esta unit.

Cuando creas un nuevo formulario, el IDE de Delphi ya te crea una clase del tipo TForm , las partes private, public y protected que aparecen en la unit, pertenecen a la definición de esta clase, todos los procedimientos o funciones que definas en esa parte, serán métodos del formulario. (http://www.clubdelphi.com/foros/showthread.php?t=10278)

Saludos!

athal
17-05-2004, 01:05:20
Por fin te entendi, funciona perfectament!

Gracias por sacarme de este oscuro pozo !