Ver Mensaje Individual
  #9  
Antiguo 30-08-2012
astrosnik astrosnik is offline
Registrado
NULL
 
Registrado: ago 2012
Posts: 9
Reputación: 0
astrosnik Va por buen camino
muchos errores y una luz

Hola de nuevo sobre todo agradecerte ecfisa tu ayuda porque empieza a darme un poco de luz

Código Delphi [-]
implementation
uses  unit2; 
procedure tform5.datos(sender: TObject);
begin  
  if not Assigned(Form2) then    
    with TForm2.Create(nil) do    
    try      
      edit1.Text := adoquery1.fieldbyname('perro').Asstring;      
      ShowModal;    
    finally      
      Free;    
    end;
end;

esto hace que me de un error al no encontrar el field del query aun haciendo referencia al form donde se encuentra asi que despues de muchas pruebas y mas errores he llegado a una conclusion ( casi seguro erronea dadas mis limitaciones) el problema me parece que viene porque al ser formulrios modales tienen el control de la aplicacion y no permiten manipular otro formulario por error llegue a una solucion que seguramente no sera todo lo limpia que debia, la voy a explicar por si alguno quiere corregirla o si le sirve de utilidad a alguien.

la solucion es usar otro form o un modulo que haga de puente en mi caso utilizare form4 que es el main de la aplicacion en el declaro una variable global y le asigno el valor en el procedimiento del form5

Código Delphi [-]
procedure tform5.datos(sender: TObject);
begin
  form4.perro:=adoquery1.FieldByName('perro').AsString);
  self.close
end;

despues doy la orden de cerrar el formulario y en la parte donde cree el form5

Código Delphi [-]
procedure TForm2.BitBtn1Click(Sender: TObject);
var
  varforms:tform5;
begin
  varforms:=tFORM5.Create(self);
  try
    varforms.Showmodal;
  finally
    Edit2.Text:=form4.perro;
    varforms.Free;
  end;

Aqui pasamos el valor de la variable puente al form 2 esto funciona perfectamente.
Si alguien se le ocurre como mejorar lo agradecere la ayuda asi como cualquier consejo que me haga aprender.

Última edición por Casimiro Notevi fecha: 30-08-2012 a las 15:47:52.
Responder Con Cita