Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-11-2011
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Poder: 20
Choclito Va por buen camino
lo que se queria

Muchas gracias ecfisa es justo lo que necesitava
Pero siguiendo con mi problema como puedo hacer para que esa seleccion parpadee en un tiempo determinado, entiendo que tengo que utilizar un timer pero la verdad nose por donde empezar.
Lo que quisiera es registrar el dato del codigo en el edit y luego que la fila donde este ese codgio en el grid parpadee con un color determinado y emita un sonido en un tiempo de 30 seg por ejemplo.
Estare buscando en la web,nuevamente gracias ecfisa, y estare atento a los comentarios del foro.
Responder Con Cita
  #2  
Antiguo 02-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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 Choclito.

Proba este código a ver si hace lo que estas buscando:
Código Delphi [-]
implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  // variables privadas a Form1
  FValor:= '';
  FBlink:= False;
  // Timers
  TimerBlink.Interval:= 200; // velocidad de parpadeo
  TimerSound.Interval:= 30000; // Beep cada 30 seg.
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, [])
end;

procedure TForm1.TimerBlinkTimer(Sender: TObject);
begin
  FBlink:= not FBlink;
  DBgrid1.Invalidate;
end;

procedure TForm1.TimerSoundTimer(Sender: TObject);
begin
  MessageBeep(MB_OK);
end;
...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 02-11-2011
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Poder: 20
Choclito Va por buen camino
todo bien

gracias ecfisa muestra como quiero pero quisiera que de sonido y parpadee durante un tiempo deternimado con los dos timer da sonido y parpadeo de manera ilimitada, pero como hacer para que durante un tiempo determinado solamente las dos cosas , no se talves ni bien salgo del edit solo los proximos 30 o 45 seg
Espero respuestas, yo tambien vere con todo como lo soluciono, si lo soluciono muestro el codigo , gracias
Responder Con Cita
  #4  
Antiguo 02-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
  #5  
Antiguo 02-11-2011
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Poder: 20
Choclito Va por buen camino
Otra alternativa

Gracias por la alternativa ,lo voy a probar ,pero tengo otra alternativa pues no se si es adecuada pero hasta donde veo da
el codigo es:
Código Delphi [-]
procedure TF_Principal.TimerBlinkTimer(Sender: TObject);
begin
//p variable privada 
 p:=p+1;
  FBlink:= not FBlink;
  DBgrid1.Invalidate;
  //p:=p+1;
  if p=50  then
TimerBlink.Enabled:=FALSE;
end;

y el otro timer este:
Código Delphi [-]
procedure TF_Principal.TimerSoundTimer(Sender: TObject);
VAR I:INTEGER;
begin
 M:=M+1;
 IF M MOD 5 =0 THEN
  MessageBeep(MB_OK);
   if M=20  then
TimerSound.Enabled:=FALSE;
end;


en el onexit del edit tengo
Código Delphi [-]
    P:=0;
     M:=0;
  TimerBlink.Enabled:=TRUE;
  TimerSound.Enabled:=TRUE;
      FValor:= Trim(Edit1.Text);
  mdoq_listado.Locate('Codigo', Edit1.Text, [])
el intervalo de los dos timer es de 200 y 300 y bueno ahi da, nose pero si seria lo mas correcto, el codigo de ecfisa lo probare , gracias , saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Funcion cambiar propiedades componente(variable) Dclase Varios 7 17-06-2011 13:37:48
Variable con color? jam888 Varios 2 06-04-2006 02:24:03
Llamar a una funcion almacenandola en una variable papulo Varios 15 02-02-2006 18:19:25
Llamada a una funcion que incluye en el nombre una variable papulo PHP 11 28-12-2005 16:38:19
Salir de un dbgird con el tabulador aram2r OOP 4 28-05-2004 18:12:00


La franja horaria es GMT +2. Ahora son las 12:32:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi