Olá pessoal! Mandei a mensagem respondendo de forma equivocada a mensagem de um colega.
Estou apanhando de um componente ListView que estou utilizando para mostrar um mapa de mesas no meu sistema. O que ocorre é que eu utilizava o código abaixo para formulár o mapa a cada alteração que uma mesa era adicionada ou alterada: procedure TfrmFrente.CompoeMa pa(Sender: TObject); Var List: TStringList; List2: TStringList; Var NewItem: TListItem; I: Integer; begin // MONTAGEM DO ARQUIVO DE TEXTO sqlMapaMesasIni( 'N', '%'); sqlMapaMesas. First; List := TStringList. Create; While Not (sqlMapaMesas. Eof) do begin List.Add(sqlMapaMes as.FieldByName( 'MESA_CARTAO' ).AsString) ; If ((Time >= (sqlMapaMesas. FieldByName( 'ULTIMO_LANCAMEN TO').Value + dm.sqlConfig. FieldByName( 'CT_MINUTOS_ ALERTA'). Value))) then // se o tempo sem atendimento for igual ou maior que o definido no config begin If (vPassada <> 1) then // se for a passada 1 coloca os ícones normais begin If (sqlMapaMesas. FieldByName( 'STATUS') .AsString = 'A') then List.Add('@' + IntToStr(1)) else List.Add('@' + IntToStr(0)) ; end else // caso contrário coloca o ícone em branco begin List.Add('@' + IntToStr(3)) ; end; // se houver mesas agrupadas... adiciona no mapa If Not (sqlMapaAgrupadas. IsEmpty) then begin While Not (sqlMapaAgrupadas. Eof) do begin // se para agrupadas também for passada 1 coloca ícone padrão de agrupamento If (vPassada <> 1) then begin List.Add(sqlMapaAgr upadas.FieldByNa me('MESA' ).AsString) ; List.Add('@' + IntToStr(2)) ; end else // caso contrário ícone branco begin List.Add(sqlMapaAgr upadas.FieldByNa me('MESA' ).AsString) ; List.Add('@' + IntToStr(3)) ; end; sqlMapaAgrupadas. Next; end; end; // sqlMapaMesas. Next; end else // se não tiver excedido o tempo limite do config begin If (sqlMapaMesas. FieldByName( 'STATUS') .AsString = 'A') then List.Add('@' + IntToStr(1)) else List.Add('@' + IntToStr(0)) ; // se houver mesas agrupadas... adiciona no mapa If Not (sqlMapaAgrupadas. IsEmpty) then begin While Not (sqlMapaAgrupadas. Eof) do begin List.Add(sqlMapaAgr upadas.FieldByNa me('MESA' ).AsString) ; List.Add('@' + IntToStr(2)) ; sqlMapaAgrupadas. Next; end; end; // sqlMapaMesas. Next; end; sqlMapaMesas. Next; end; If (vPassada <> 2) then vPassada := 2 else vPassada := 1; List.SaveToFile( ExtractFilePath( Application. ExeName) + 'Mapa.txt'); List.Free; // MONTAGEM DO MAPA NA TELA lvMesas.Items. Clear; lvMesas.ViewStyle := vsIcon; sqlMapaMesasIni( 'N', '%'); //********** ********* ********* ********* ********* ********* ********* ********* ********* * // aqui ele configura o listview //********** ********* ********* ********* ********* ********* ********* ********* ********* * NewItem := Nil; lvMesas.Items. Clear; List2 := TStringList. Create; Try List2.LoadFromFile( ExtractFilePath( Application. ExeName) + 'Mapa.txt'); For I := 0 to List2.Count - 1 do If (List2[I][1] = #9) then NewItem.SubItems. Add(Trim( List2[I]) ) else if (List2[I][1] = '@') then NewItem.ImageIndex := StrToIntDef( List2[I][ 2], 0) else begin NewItem := lvMesas.Items. Add; NewItem.Caption := List2[I]; end; Finally List2.Free; end; end; Acontece que agora quero fazer com que uma mesa que esteja sem atendimento a X minutos seja apresentada com o ícone intermitente, e confesso que toh apanhando. Minha idéia era utilizar um Timer que a cada 500 (ciclo de tempo) faria a conferência das mesas abertas e apenas trocaria o ícone representantes por uma imagem em branco dando o efeito de intermitência. Mas não tah dando muito certo. Se alguém puder me dar uma luz, fico agradecido. Leonardo Vinicius Freitag Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]