[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