[Lazarus-es] form: referenciar al padre

Paola Bruccoleri pbruccoleri en adinet.com.uy
Mie Abr 13 01:38:32 CEST 2011


El 12/04/2011 02:24 p.m., José Mejuto escribió:
> Básicamente 2 formas, una es un "parche" para que mantengas el viejo
> estilo, o sea, lo que estás usando y otra que sería a mi modo de verlo
> más correcta:
>
> 1) Al viejo estilo:
>
>     TABMMonedas(Self.Owner).dbMonedas.CancelUpdates;
>
> 2) El más correcto ?:
>
>     El segundo formulario (donde pulsas Cancel) necesita saber una de
>     dos cosas, o bien que el dbMonedas está en otro sitio, o bien que
>     debe devolver un error si se pulsa cancel, o un ok si todo va bien.
>     Si optas por el "error" simplemente alterando el valor que se
>     devuelve en el ShowModal (ModalResult) tendrías suficiente, el
>     trabajo lo haría el form padre al ver el error del hijo. Pero se
>     puede dar el caso de que quieras cancelar la operación y no cerrar
>     el form. En este caso lo lógico es crear una propiedad en el form
>     que le diga o bien a qué método del form padre llamar para
>     cancelar, o bien decirle que dataset está usando:
>
>     FormHijo = class (TForm)
>     private
>        ......
>        FMiDataSet: TDataSet;
>     protected
>        ......
>     public
>        ......
>        property UseDataset: TDataSet read FMiDataSet write FMiDataSet;
>     end;
>
>     En el código pondrás algo como "FMiDataset.CancelUpdates".
>
>     A la hora de mostrarlo:
>
>     var
>       f: TFormHijo;
>     begin
>       f:=TFormHijo.Create(Self);
>       f.UseDataSet:=Self.dbMonedas;
>       f.ShowModal;
>       f.Free;
>     end;
>
>     Dependiendo de lo que hagas en el FormHijo sería más conveniente el
>     método del ModalResult ( Sobre todo con cosas, tipo "¿ Está seguro
>     ?") ) y como método general el segundo.
>
Hola José..(y Jorge también..)
muchas gracias por sus comentarios..
estuve justamente pensando en que la solución vendría por el uso de las 
propiedades.. no se me ocurrió lo del modalresult..
También estuve mirando que podía tener todas las tablas, querys, etc en 
el datamodule, pero allí por ahora solo tengo la conexión a la bd, y en 
los forms pongo lo otro que necesito..

probaré a ver que tal me va! y les cuento!

todo sea por la prolijidad jajajajaj

(PD: al final, no me dió el cuero para actualizar el lazarus el fin de 
semana... lo haré el siguiente...)
chauuuuuuuuuu





More information about the Lazarus-es mailing list