[Lazarus-es] forms, cargar datos del form padre desconociendo nombre

Carlos Enrique Rodriguez cer en racss.com.ar
Sab Dic 1 23:17:48 CET 2012


Hola,
           Se me ocurren varias formas. Vos decime cual te gusta más y si queres la desarrollamos.

          - Podes declarar los datos como propertys y mandarlos antes del show del hijo
          - Podes redefinir el constructor de tu form hijo
          - Antes del show podes pasar una variable (no se si merece ser una property) de tipo Tform con el self del padre y usarla para acceder a los valores del padre

Personalmente prefiero las dos primeras opciones.

Saludos
Carlos


Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribió:

>Hola todos..
>
>Desde el menú ppal creo un form de esta manera, o sea, NO usando el 
>nombre genérico que le pone lazarus:
>
>          f3:= TfrmListaPropietarios.Create(Self);
>          try
>            f3.Showmodal;
>          finally
>            f3.Free;
>          end;
>
>Ese form tiene una grilla y botones de agregar, etc.. el clásico CRUD
>La grilla muestra los datos de una consulta llamada qryProp.
>En el botón editar tengo esto:
>
>procedure TfrmListaPropietarios.btnEditarClick(Sender: TObject);
>var
>   fc: TfrmPropietarios;
>begin
>   qryProp.edit;
>
>   fc:= TfrmPropietarios.Create(Self);
>   fc.caption:= 'Modificar registro';
>   try
>      if (fc.ShowModal = mrOK) Then
>         Begin
>           qryProp.Post;
>           qryProp.CommitUpdates;
>           qryProp.ApplyUpdates;
>         end
>       else begin
>           qryProp.Cancel;
>           qryProp.CancelUpdates;
>       end;
>
>       qryProp.Refresh;
>
>   finally
>       FreeAndNil(fc);
>   end;
>
>end;
>
>No quiero usar en el form de agregar controles enlazados al datasource,
>
>sino TEdits comunes y corrientes.
>
>Entonces deberé cambiar un poco esa forma... no usar el edit, post, etc
>
>sino grabar los datos usando un update...
>Pero... ¿Cómo hago en el onShow del formulario fc para cargar los datos
>
>que ya hay, si no se cómo se llama el form padre?
>
>porque algo de esto ya no puedo hacer:
>edtNombre.text:=
>ListaPropietarios.qryProp.FieldByName('nombre').asstring;
>
>porque ListaPropietarios no fue creado de la manera "tradicional" de 
>usar el nombre genérico.
>
>se podrá usar "super" o algo así?
>
>Se agradece cualquier consejo!
>muchas gracias
>Saludos...
>
>
>_______________________________________________
>Lazarus-es mailing list
>Lazarus-es en lists.lazarus.freepascal.org
>http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20121201/15ce5a04/attachment-0002.html>


More information about the Lazarus-es mailing list