Ver Mensaje Individual
  #13  
Antiguo 16-01-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 23
guillotmarc Va por buen camino
Veamos ahora el segundo problema :

Como han comentado, no hace falta que uses la directiva var al pasar por referencia un parámetro. Esa directiva solo se pone en la definición del parámetro, pero en el momento de llamar a la función, en el parámetro tienes que poner una variable (como podrías hacer perfectamente en una parámetro pasado por valor).

Tienes que poner una variable porqué, una vez ejecutado el procedimiento, si se ha modificado el valor, solo tienes que leer el contenido de la variable para conocer el valor modificado.

Así pues, la llamada te quedaría :

Código:
var PuedeCerrar: boolean;
begin
  PuedeCerrar := True;
  Ventana.FormCloseQuery(Ventana; PuedeCerrar);
end;
Como puedes ver, tienes que referenciar el formulario con una variable que apunte a él. (Al igual que pasaba con los componentes, sinó tendrías el mismo problema al intentar ejecutar el procedimiento).

Como comenté en el primer mensaje, no es nada aconsejable programar de esta forma, accediendo directamente a componentes y llamando a eventos de otros formularios. Esto te complica mucho el mantenimiento del programa, hacer modificaciones, ver donde falla, etc .... Seria mucho mejor que todo lo que quieras hacer sobre un formulario, lo pongas en unos métodos públicos que sean lo único a lo que se accede desde fuera del formulario.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita