¡Hola a todos!
Cuando la tabla está en algún modo de edición, CheckBrowseMode llama a Post si el registro actual tuvo cambios fuera del evento OnNewRecord; de lo contrario llama a Cancel, bajo el entendido de que si hubo una asignación en OnNewRecord, ésta es descartable por tratarse de una mera inicialización.
Código Delphi
[-]
procedure TDataSet.CheckBrowseMode;
begin
CheckActive;
DataEvent(deCheckBrowseMode, 0);
case State of
dsEdit, dsInsert:
begin
UpdateRecord;
if Modified then Post else Cancel;
end;
dsSetKey:
Post;
end;
end;
Utilizo Post cuando es seguro que el estado será dsEdit o dsInsert y quiero guardar cualquier posible asignación. Utilizo CheckBrowseMode para
asegurar que la tabla esté en modo dsBrowse sin perder datos valiosos que alguien o algo haya podido asignar. Para eso es CheckBrowseMode.
Un abrazo checado, browseado y módico. Me voy al cine....
Al González.