Hola oscarac.
Cuando la propiedad
Enabled de un control esta en
False el control ignora el mouse y el teclado. Al salir del DBEdit, se envía el Foco al próximo control determinado por TabOrder, sin importar que el estado de este sea
Disabled. Si el próximo control a la salida del DBEdit tiene su propiedad
Enabled a
True no se produce ese efecto.
Una solución que se me ocurre, es utilizar este código para deshabilitar los DBEdits:
Código Delphi
[-]
function TForm1.ControlesOff: Boolean;
begin
edtMaterial.Enabled := qryUbicarCuentainv.AsString = 'S';
edtActivo.Enabled := qryUbicarCuentaACT.AsString = 'S';
edtArea.Enabled := qryUbicarCuentaArea.AsString = 'S';
edtCantidad.Enabled := qryUbicarCuentainv.AsString = 'S';
edtCCosto.Enabled := qryUbicarCuentaCCosto.AsString = 'S';
edtAnexo.Enabled := qryUbicarCuentaAnexo.AsString = 'S';
edtRuc.Enabled := qryUbicarCuentainv.AsString = 'S';
Result:= edtMaterial.Enabled;
end;
Ignoro cuando realizas las consultas y activas/desactivas los DBEdits, pero supongamos que lo haces en el evento
OnExit del primer DBEdit
que adjuntaste:
Código Delphi
[-]
procedure TForm1.edtMaterialExit(Sender: TObject);
begin
if ControlesOff then
begin
edtMaterial.Enabled:= True; edtMaterial.SetFocus; end;
end;
Espero que te sirva o al menos te aporte alguna una idea.
Un saludo.