Hello Paola,
Monday, April 11, 2011, 4:27:21 PM, you wrote:
PB> si, esta es una pregunta tonta.. pero no me doy cuenta.
No, desde luego que no es tonta, es mucho m�s habitual de lo que crees :)
[...]
PB> (o sea, NO estoy usando las variables globales de los formularios) PB> Ahora.. en el form TEditMonedas, en el bot�n cancelar quiero hacer el PB> cancelupdate de la tabla...
PB> como en los ejemplos que he hecho siempre us� las variables globales de PB> los formularios, al hacer esto estaba listo:
PB> ABMMonedas.dbMonedas.CancelUpdates;
PB> pero ahora.. sale un acces violation xq claro est�, hay relajo con esto PB> por el nombre ABMMonedas...
PB> c�mo lo puedo solucionar?
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.
Best regards,
Jos�