Ver Mensaje Individual
  #5  
Antiguo 05-06-2007
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:
Empezado por fedelphi
como hago para pasarle una referencia del formulario que llama al formulario modal?
La pregunta más bien es: ¿para qué quieres eso?

Según alcanzo a ver de tu código, el formulario modal está para preguntar al usuario un dato que requiere el otro formulario, y ese dato intentas asignarlo directamente desde el modal, pero esa no es tarea de éste formulario.

Piénsalo así: en general, un formulario modal se usa para preguntar valores, pero qué se hace con esos valores es responsabilidad de quien llama al formulario.

Por ejemplo, un cuadro de diálogo como OpenFileDialog tiene como finalidad preguntar al usuario por un nombre de archivo. El cuadro jamás va a colocar el nombre seleccionado en ninguna parte ajena a él, únicamente "devolverá" el archivo seleccionado en su propiedad FileName.

En tu caso yo haría algo similar. Al formulario modal le anexas una propiead al caso:

Código Delphi [-]
type
TFAdvierteBorraCirculante = class(TForm)
  ...
private
  FCantidad: Integer;

public
  property Cantidad: Integer read FCantidad write FCantidad;
end;

En el evento OnCloseQuery de este formulario verificas si el usuario oprimió OK. De se asi, asignas el dato en ECantidad.Text a FCantidad:

Código Delphi [-]
FCantidad := StrToInt(ECantidad.Text);

El otro formulario abriría el modal así:

Código Delphi [-]
procedure TFConsultaCirc.BEliminarClick(Sender: TObject);
var
  adv: TFAdvierteBorraCirculante;
begin
  adv := TFAdvierteBorraCirculante.create(self);

  try
    if adv.showmodal=mrYES then
    begin
      env_devs := adv.Cantidad;
    end;
  finally
    adv.Free;
  end;
end;

Observa el uso del try-finally para destruir al formulario modal. No dejes que éste se "autodestruya" poniendo Action := caFree en el evento OnClose. Lo necesitas "vivo" para cuando se cierre y tomes el vaor de su propiedad Cantidad.

// Saludos
Responder Con Cita