Grid Piscante ?????
Caros colegas, estou com um problema que não consigo resolver.
Gostaria que alguns itens do meu grid ficasse fiscante quando eu fizesse uma pesquisa. Por exemplo: Tenho uma tabela com 100 produtos alguns deles com estoque negativo, gostaria que esses produtos com estoque negativo ficasse piscante no meu grid, como alerta para o usuario.
Grato pela atenção.
fr.rodrigo@bol.com.br
Gostaria que alguns itens do meu grid ficasse fiscante quando eu fizesse uma pesquisa. Por exemplo: Tenho uma tabela com 100 produtos alguns deles com estoque negativo, gostaria que esses produtos com estoque negativo ficasse piscante no meu grid, como alerta para o usuario.
Grato pela atenção.
fr.rodrigo@bol.com.br
Fernando
Curtidas 0
Respostas
Anonymous
02/04/2003
Caros colegas, estou com um problema que não consigo resolver.
Gostaria que alguns itens do meu grid ficasse fiscante quando eu fizesse uma pesquisa. Por exemplo: Tenho uma tabela com 100 produtos alguns deles com estoque negativo, gostaria que esses produtos com estoque negativo ficasse piscante no meu grid, como alerta para o usuario.
Grato pela atenção.
fr.rodrigo@bol.com.br
Bom, nunca vi grid piscar.. se pisca deve ter algum componente para isso, mas enfim.. existe o QuantumGrid da www.devexpress.com que vc pode colocar imagens para mostrar q esta negativo o produto, seria a forma mais facil, creio
[]´s
GOSTEI 0
Michael
02/04/2003
Amigo Fernando,
sou programador Delphi, assim como você, e sempre que precisei exibir dados em uma grade, eu usei um StringGrid ao invés de um DBGrid. Decidi isso porque eu consigo ter um controle muito maior sobre o primeiro componente do que o segundo. Em mais de 5 anos de programação, eu consegui implementar umas funções ao StringGrid, como formataçao HTML, busca, ordenação, que eu (eu disse eu) particulamente nunca vi em um DBGrid. Mas chega de blá-blá-blá e vamos ao seu problema.
Eu vejo uma solução se vc usar o StringGrid. Eis a idéia:
O componente TStringGrid tem um evento, OnDrawCell, que é chamado sempre que o conteúdo de cada célula é alterado. Nesse evento vc pode definir cor, fonte, enfim, tudo o que o objeto Canvas permitir. Para efeitos de teste, siga esse exemplo: Coloque um TStringGrid no form, um TTimer e um botão (TButton). No evento OnClick do botão, digite:
No evento OnTimer, digite:
E por fim, no evento OnDrawCell do StringGrid:
Execute o programa e veja se deu certo. Eu não testei o código acima, criei-o aqui diretamente. Qualquer erro me avise.
Use a criatividade agora e sucesso no seu projeto! Qualquer dúvida sobre TStringGrid, mande um email para mim.
Espero ter ajudado!
Michael :D
sou programador Delphi, assim como você, e sempre que precisei exibir dados em uma grade, eu usei um StringGrid ao invés de um DBGrid. Decidi isso porque eu consigo ter um controle muito maior sobre o primeiro componente do que o segundo. Em mais de 5 anos de programação, eu consegui implementar umas funções ao StringGrid, como formataçao HTML, busca, ordenação, que eu (eu disse eu) particulamente nunca vi em um DBGrid. Mas chega de blá-blá-blá e vamos ao seu problema.
Eu vejo uma solução se vc usar o StringGrid. Eis a idéia:
O componente TStringGrid tem um evento, OnDrawCell, que é chamado sempre que o conteúdo de cada célula é alterado. Nesse evento vc pode definir cor, fonte, enfim, tudo o que o objeto Canvas permitir. Para efeitos de teste, siga esse exemplo: Coloque um TStringGrid no form, um TTimer e um botão (TButton). No evento OnClick do botão, digite:
Timer1.Enabled := true
No evento OnTimer, digite:
with StringGrid1 do if Cells[0,1] = ´S´ then Cells[0,1] := ´N´ else Cells[0,1] := ´S´;
E por fim, no evento OnDrawCell do StringGrid:
with Sender as TStringGrid do begin if Cells[0, 1] = ´S´ then Canvas.Brush.Color := clRed else Canvas.Brush.Color := clWhite; Canvas.FillRect(Rect); Canvas.TextOut(Rect.Left, Rect.Top, Cells[ACol, ARow]); end;
Execute o programa e veja se deu certo. Eu não testei o código acima, criei-o aqui diretamente. Qualquer erro me avise.
Use a criatividade agora e sucesso no seu projeto! Qualquer dúvida sobre TStringGrid, mande um email para mim.
Espero ter ajudado!
Michael :D
GOSTEI 0
Michael
02/04/2003
Amigo Fernando, há um pequeno erro no código que passei a vc. Eis a correção:
No evento OnDrawCell, troque a linha
por
.
Antes toda a grade iria mudar de cor. Agora, só a linha onde o texto ´S´ estiver.
Abraços.
Michael :D
No evento OnDrawCell, troque a linha
if Cells[0, 1] then
por
if Cells[0, ARow] then
Antes toda a grade iria mudar de cor. Agora, só a linha onde o texto ´S´ estiver.
Abraços.
Michael :D
GOSTEI 0