Para lo que quieres hacer, te aconsejaría no usar un
TDBEdit sino un control
TEdit normal (o mejor un
TMaskEdit), ya que los
TDBEdit, como están enlazados directamente a campos de la base de datos, siempre modificará el valor existente sin darte tiempo a comprobar el valor introducido antes de la modificación. Después, para actualizar el control
TEdit, has de servirte de los eventos del
DataSource relacionado, más concretamente del evento
OnDataChange. Ej:
Código Delphi
[-]
procedure TForm1.Edit1Exit(Sender: TObject);
begin
if (Edit1.Text <> '') and not DataSet.Locate('CODIGO', Edit.Text, []) then
begin
end;
end;
procedure TForm1.DataSource1StateChange(Sender: TObject);
begin
Edit1.Text := DataSet.FieldByName('CODIGO').AsString;
end;
Los
DataSources posee dos eventos más:
OnStateChange (captura los cambios de estado del
DataSet) y
OnUpdateData (se ejecuta cuando se van a modificar los campos de la base de datos), revisa la ayuda sobre esta clase para más información.
Por último, tienes la opción de crearte tu propio control
TDBEdit que realice lo que quieres!
Saludos!