[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