Ver Mensaje Individual
  #10  
Antiguo 02-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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;
  // Timers
  TimerBlink.Interval:= 200; // velocidad de parpadeo
  TimerBlink.Enabled:= False;
  TimerBeep.Interval:= 2000; // 1 Beep c/ 2seg
  TimerBeep.Enabled:= False;
  TimerOff.Interval:= 30000; // Beep durante 30 segundos
  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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita