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 20-11-2011
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Poder: 20
Choclito Va por buen camino
Secuencia al pintar un dbgrid

Buenos dias amigos del foro
Mi problema es el siguiente:
Antes trabajo con Firebird y delphi 7,Tengo un dbgrid asociado a un query y con lo ayuda de amigos del foro pude hacer que teniendo un edit registre un valor del query y que luego de registrar,busque en el query que registro tiene ese valor y lo pinte y emita sonido por un tiempo determinado
Para que me entiendan mejor les doy un ejemploi
tengo un dbgrid con los siguientes datos
Oficina Codigo
Administracion ADM
Fichaje FIC
Contabilidad CON
Almacenes ALM


entonces por medio de un edit registro FIC y la segunda fila parpadea y emite sonido por un tiempo determinado
el codigo es:

Código Delphi [-]
procedure TF_Principal.Button2Click(Sender: TObject);
var i:integer;
begin
     P:=0;
     M:=0;
      FValor:= Trim(Edit1.Text);
  modulo_db.mdoq_listado.Locate('Codigo', Edit1.Text, []);
    TimerBlink.Enabled:=TRUE;
  TimerSound.Enabled:=TRUE;
end;
en el dbgrid es:
Código Delphi [-]
procedure TF_Principal.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
 {if mdoq_listado.FieldByName('Codigo').AsString = Val then
    DBGrid1.Canvas.Brush.Color:= clLime;  // el color de tu gusto
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
  }
  const
  CBLNK: array[0..1] of TColor = (clLime, clWhite);
begin
  if modulo_db.mdoq_listado.FieldByName('Codigo').AsString = FValor then
  BEGIN
    DBGrid1.Canvas.Brush.Color:= CBLNK[Integer(FBlink)];
    DBGRID1.Canvas.Font.Color:=CLBLACK;
    END;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

  end;
y los timer son:
Código Delphi [-]
procedure TF_Principal.TimerBlinkTimer(Sender: TObject);
begin
  p:=p+1;
  FBlink:= not FBlink;
  DBgrid1.Invalidate;
  //p:=p+1;
  if p=50  then
TimerBlink.Enabled:=FALSE;
end;

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;

El problema que tengo es que si registro CON me parpadea y emite sonido todo bien , pero si instantes luego registro en el edit ADM me emite la fila donde esta ADM y lo anterior que estaba parpadeando en el registro CON ya no parpadea,
Como puedo hacer para que se vaya parpadeando segun vaya registrando los datos en el edit ????
asi como si entraria a una cola de datos y en funcion a lo que vaya registrando vaya parpadeando los registros y no como lo tengo ahora que solo un registro parpadea y emite sonido
Se que talves es sencillo pero la verdad nose por donde empezar , estare muy agradecido por su ayuda amigos del foro
Responder Con Cita
  #2  
Antiguo 21-11-2011
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,
he leido tu mensaje y no he entendido muy bien lo que pretendes hacer, puede que tu mensaje no haya obtenido respuesta porque a los demás les ocurra lo mismo que a mi, intenta explicar mejor tu problema para poder entender realmente como quieres que actúe tu programa.

Saludos.
Responder Con Cita
  #3  
Antiguo 22-11-2011
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Poder: 20
Choclito Va por buen camino
Aclarando

Bueno, gracias por responder , entonces nuevamente les explico
Tengo un sistema de colas para la atencion en una institucion, entonces tengo la emision de fichas que se genera de la siguiente manera en un dbgrid de la siguiente manera:

Codigo Oficina Ticket
ADM ADMINISTRACION ADM 1
CON CONTABILIDAD CON 1
FIC FICHAJE FIC 2
EST ESTADISTICA EST 3


Entonces es recibir mediante eventos de firebird el codigo y buscar en el listado y hacerlo parpadear y emitir sonido por un tiempo determinado
Lo pude realizar recibiendo el codigo en un edit y por medio de un boton hacer que parpadee por un tiempo determinado,pero si escribo otro codigo en el edit que este en el dbgrid y llamo al evento del boton aun cuando el anterior codigo sigue parpadeando, lo que hace es que el anterior reglon o registro que estaba parpadeando deja de parpadear y ahora parpadea el reglon o registro asociado al codigo taypeado en el edit.
¿Como puedo hacer que si registro un codigo en el edit y luego parpadea el renglon y si registro otro codigo en el edit parpadee por un tiempo determinado esa fila asociada pero continue parpadeando el anterior registro que estaba parpadeando hasta que cumpla el tiempo asignado?
Espero que se haya entendido el problema que tengo y estare atengo a sus comentarios amigos foreros
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
Problema al Pintar DBGrid MaMu Varios 5 11-06-2007 09:53:36
Pintar un dbGRid sebas78 Gráficos 5 22-07-2006 16:06:36
pintar columna DBGRid Coco_jac Varios 1 02-02-2006 23:54:59
Pintar filas DbGrid lunatiko Varios 5 05-07-2005 15:11:51
Pintar Renglones en DBGRID Enan0 SQL 2 15-02-2005 20:39:05


La franja horaria es GMT +2. Ahora son las 03:11:03.


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