Hola.
Añadí un tercer
TTimer para espaciar el sonido, si no los usuarios te van a odiar
Código Delphi
[-]
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
FValor:= '';
FBlink:= False;
TimerBlink.Interval:= 200; TimerBlink.Enabled:= False;
TimerBeep.Interval:= 2000; TimerBeep.Enabled:= False;
TimerOff.Interval:= 30000; TimerOff.Enabled:= False;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
const
CBLNK: array[0..1] of TColor = (clLime, clWhite);
begin
if Query1.FieldByName('Codigo').AsString = FValor then
DBGrid1.Canvas.Brush.Color:= CBLNK[Integer(FBlink)];
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
FValor:= Trim(Edit1.Text);
Query1.Locate('Codigo', Edit1.Text, []);
TimerBlink.Enabled:= True;
TimerBeep.Enabled:= True;
TimerOff.Enabled:= True;
end;
procedure TForm1.TimerBlinkTimer(Sender: TObject);
begin
FBlink:= not FBlink;
DBgrid1.Invalidate;
end;
procedure TForm1.TimerBeepTimer(Sender: TObject);
begin
Beep;
end;
procedure TForm1.TimerOffTimer(Sender: TObject);
begin
TimerBlink.Enabled:= False;
TimerBeep.Enabled:= False;
TimerOff.Enabled:= False;
end;
Saludos.