[Lazarus-es] actualización lazarus

José Mejuto joshyfun en gmail.com
Mie Abr 13 16:38:18 CEST 2011


Hello Ismael,

Wednesday, April 13, 2011, 2:33:36 PM, you wrote:

ILDG> procedure Tfcaptar.dsBeforePost(DataSet: TDataSet);
ILDG> begin
ILDG>   if fconta.RegOpe = 'RT' then begin  // fconta es el nombre del formulario
ILDG> padre
ILDG>     if DataSet.FieldByName('reg').AsInteger <= 0 then
ILDG>       begin
ILDG>        Application.MessageBox('El número del registro no puede ser un número
ILDG> mayor que cero.', pchar(Self.Caption), 0);
ILDG>         DataSet.Cancel; // aquí trato de cancelar la actualización, la
ILDG> cancela pero borra todo lo que escrito en todas las columnas y necesito que
ILDG> no borre nada.

Esto creo que sería "Abort". Si se produce una excepción (cualquiera)
en el "BeforePost", el "Post" no llega a realizarse. Si ejecutas
"Abort" este lanza una excepción, que la recoge el motor interno y al
comprobar que es "EAbort" simplemente cancela el post, se traga la
excepción y devuelve el control a los componentes.

ILDG>         dbg.Columns.Items[0].Grid.SetFocus;  //dbg es el nombre del TDBGrid,
ILDG> aquí me trato de posicionar en una columna, esto no funciona

Se solucionaría con "dbg.SelectedIndex:=0" ???

-- 
Best regards,
 José





More information about the Lazarus-es mailing list