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

Maxi maximiliano.duarte en gmail.com
Lun Dic 3 14:20:41 CET 2012


El día 3 de diciembre de 2012 03:47, Jose Antonio. Cuello Principal
<jcuello en artextrading.com> escribió:
> Hola, no se si termino de entenderlo, pero tal vez sería pasarle un puntero
> al TDataset al formulario hijo mediante un property y tener un array of
> strings en el formulario hijo con la lista de campos (se podría definir como
> un const al principio justo debajo de la declaración de la clase
> TMyFormChild). Luego simplemente con un FieldByName pasas de controles de
> pantalla al dataset o viceversa.
>
> Algo así,
>
> En formulario hijo
>
> property Query: TDataSet read FQuery write FQuery;
>
> const
>    fieldList = array of string ('campo1', 'campo2', 'campo3');
>
>
> procedure loadDataFromDataset;
> var x: Integer;
> begin
>   Edit1.Text := Query.FieldByName(fieldList[0]).asString;
>   Edit2.Text := InttoStr(Query.FieldByName(fieldList[1]).asInteger);
>
>   ....
> end;
>
>
> Bueno, espero te sirva. Un saludo
>
> ________________________________
> De: "Paola Bruccoleri" <pbruccoleri en adinet.com.uy>
> Para: "Lista Lazarus" <lazarus-es en lists.lazarus.freepascal.org>
> Enviados: Sábado, 1 de Diciembre 2012 23:00:33
> Asunto: [Lazarus-es] forms, cargar datos del form padre desconociendo nombre
>
>
> 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
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>

Donde estan los datos? en el for principal o en modulo de datos?
si es un modulo de datos agrega este al form y listo.
sino al aceptar y retornar si fue Ok lees los controles edits y haces
un insert y guardas. Pero para levantar los datos que ya tiene el
registro antes de abrir el formulario le tenes que pasar/llenar con
los datos del registro a mano.

--
El que pregunta aprende, y el que contesta aprende a responder.

No a la obsolecencia programada:
http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html

Linux User #495070
http://domonetic.com/blog




More information about the Lazarus-es mailing list