Ver Mensaje Individual
  #6  
Antiguo 26-09-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por santiago14
Ahora... como resuelvo el problema??
¿Cómo creas Form2?

Como te dije antes, si usas una variable local a Form1 entonces Form3 no la verá; sólo verá la variable Form2 declarada en Unit2 que es nil ya que no está en el "auto-create".

Puedes hacer lo siguiente:

No usar una variable local al momento de crear Form2 sino usar la declarada en Unit2. Desde luego debes agregar Unit2 a la cláusula uses tanto de Unit1 como de Unit3 para qe ambas la vean. Lo correcto es en la parte de implementación.

Por otra parte, según entiendo de tu código, Form3 la necesitas para asignar un valor a un cuadro de texto de Form2 y la cierras apenas sucede esto.

No es muy buena idea acceder a los controles de un formulario desde otro formulario; incluso hay quienes piensan que los controles de un formulario deberían ser privados y no públicos cómo hace Delphi.

Piensa en lo que hace un cuadro de diálogo como FileOpen. El diálogo no coloca ningún valor en el formulario que lo abre; lo que hace es dejar ese valor en una propiedad pública (FileName en este caso) de manera que el formulario que lo abrió puede usar el valor.

Dicho esto quizá te convenga algo así:

Código:
TForm3 = class(TForm)
public
  Propiedad: String;
end;
En el evento OnCloseQuery de Form3 pones:

Código:
if ModalResult = mrOk then
  Propiedad := el valor que necesitas;
Form2 llamará a Form3 así:

Código:
with TForm3.Create(nil) do
begin
  if ShowModal = ID_OK then
    Edit1.Text := Propiedad;

  Free;
end;
El punto fino en ésto es la separación de trabajos. Regresando al FileOpenDialog, éste no sabe, ni tiene por qué saber nada acerca del formulario que lo llama; su labor es escoger un archivo y punto

En tu caso me parece que es algo similar; Form3 no tiene por qué saber de la existencia de Form2, simplemente hace su labor de ajustar Propiedad y punto.

// Saludos

Última edición por roman fecha: 26-09-2003 a las 19:32:14.
Responder Con Cita