Ver Mensaje Individual
  #4  
Antiguo 30-08-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡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.
Responder Con Cita