Ver Mensaje Individual
  #2  
Antiguo 08-04-2006
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Reputación: 19
jmariano Va por buen camino
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
    // Escribe aquí las operacines a realizar si no encuentra el registro
  end;   
end;

procedure TForm1.DataSource1StateChange(Sender: TObject);
begin
  // Actualizamos el contenido del control según la base de datos
  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!

Última edición por jmariano fecha: 08-04-2006 a las 20:21:41.
Responder Con Cita