Hello Paola,
you wrote> BuscaCliente:=TfrmBuscaCliente.Create(Self);
PB> He querido colocar esto en un procedimiento
PB> gen�rico en una unit llamada por ej:
PB> funciones.pas, porque es desde muchos lados que PB> puedo invocar la busqueda de clientes.
PB> Al hacerlo, me sale el error que el m�todo Self PB> no existe (ahora no lo tengo a mano para copiarlo
Vale, simplemente es que yo siempre uso ese tipo de cosas desde forms, nunca desde funciones "gen�ricas" por lo tanto "Self" es siempre el form actual, mientras que una funci�n que no es de ninguna clase "Self" no existe. La misi�n de poner un "Owner", "Self" en este caso es que cuando "self" (qui�n sea) sea liberado, este liberar� todos los forms u objetos de los que el sea "Owner". Como en este caso controlamos la creaci�n y destrucci�n del form de una manera clara (su vida es muy corta) podemos poner simplemente "nil" en vez de "Self" y asunto solucionado.
El m�todo de usar "Self" es muy habitual cuando creamos muchos forms en pantalla que est�n todos vivos a la vez, y los dejamos as�, si cerramos el form principal este cerrar� todos los hijos autom�ticamente (owned).
PB> He estado revisando ejemplos viejos, donde
PB> defin�a por ej una unidad con funciones, y luego, cada funci�n la llamaba asi: PB> unit.funcion()
PB> o
PB> unit.procedimiento()
PB> es as� que deber�a usarse siempre??
No, forzar el "namespacing", que es lo que haces al poner lo de "unit." donde unit es el nombre de una de las units, s�lo es necesario y/o interesante para resolver ambig�edades. Un ejemplo en Windows es "Beep", si pones "Beep" a secas normalmente el procedimiento a compilar presenta este prototipo:
Procedure Beep();
Pero si en el "uses" a�adimos al final "windows" veremos que el "Beep" nos da error de compilaci�n ya que el prototipo que se relaciona es:
Procedure Beep(Frequence: integer; Duration: Integer);
Por lo tanto si queremos usar el "Beep" anterior (sin par�metros) tendremos que forzar el namespace poniendo.
system.beep();
Resumiendo, para resolver ambig�edades o asegurarnos ante una posible ambig�edad que ya estamos acostumbrados a tener de vez en cuando (a mi me pasa mucho con Beep, pero como ya casi nunca incluyo windows en el uses, pues mucho menos) :)
Best regards,
JoshyFun