[Lazarus-es] forms, cargar datos del form padre desconociendo nombre
Jose Antonio. Cuello Principal
jcuello en artextrading.com
Lun Dic 3 07:47:47 CET 2012
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
----- Mensaje original -----
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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20121203/6f6b211a/attachment-0002.html>
More information about the Lazarus-es
mailing list