Grafico de desempenho com TCHART

Delphi

28/04/2008

Bom dia pessoal!!

Estou tentando criar um gráfico de desempenho igual ao que existe no windows quando vc pressionar crtl+shift+esc -> aba desempenho, porem estou encontrando dificuldades, pois toda vez que adiciono um valor ao gráfico ele continua o seu inicio em zero. Queria fazer com q cada valor que adiciona-se ao gráfico, a linha acompanha-se a grade que esta ao fundo(como é no histórico do uso de CPU do windows). caso contrario as linhas ficam se acumulando ate não dar pra ver + nada.

Alguém já usou o TChart para isso? Ou se alguém tiver uma Idea melhor fico grato.

Abraços !


Nango Xus

Nango Xus

Curtidas 0

Respostas

Rodc

Rodc

28/04/2008

no C++Builder 6.0 (e creito que apartir do Delphi 7.0) tem um componente na palheta Samples chamado PerformanceGraph que faz exatamente o que você está querendo fazer...

Mas usando TChart também é possível. No evento OnAfterAdd da Serie (selecione através do ObjectInspector) coloque o código abaixo:
Sender.GetHorizAxis.Automatic := false;       // <-- we dont want automatic scaling
Sender.GetHorizAxis.AutomaticMaximum  := false;       // <-- we dont want automatic scaling
Sender.GetHorizAxis.AutomaticMinimum := false;       // <-- we dont want automatic scaling

Sender.GetHorizAxis.Minimum := 0;
Sender.GetHorizAxis.Maximum := Sender.XValues.MaxValue + StrToTime(´00:00:02´);  // Começa um pouco antes do fim
Sender.GetHorizAxis.Minimum := Sender.GetHorizAxis.Maximum - StrToTime(´00:00:30´);  // Mostra os últimos 30 segundos



GOSTEI 0
Nango Xus

Nango Xus

28/04/2008

Rodc,

Não achei o componente PerformanceGraph no meu delphi 2006, acredito que seja somente do C++. Entretanto o codigo que vc me passou funciona perfeitamente!!!!

Muito obrigado Rodc! :lol: :lol: :lol:


GOSTEI 0
Rodc

Rodc

28/04/2008

[quote:1026df39ac=´Nango xus´]Não achei o componente PerformanceGraph no meu delphi 2006, acredito que seja somente do C++.[/quote:1026df39ac]
É verdade, olhei o código fonte do componente e está em C++.


GOSTEI 0
Nango Xus

Nango Xus

28/04/2008

É verdade, olhei o código fonte do componente e está em C++.


Sim é mesmo, encontrei o componente na paleta samples do C++. A pergunta pode ser estranha, mas é possivel usar um componente do C++ no Delphi Win32?? Tipo recriar o compontente para VCL do Delphi. :idea:


GOSTEI 0
Rodc

Rodc

28/04/2008

Usar um componente do Delphi no C++ é possível. O inverso não sei...
Mas tenta ir em Component e escolha a opção ´Install Component´, depois veja se o Delphi dá alguma opção de selecionar arquivos .CPP ou .H.


GOSTEI 0
Nango Xus

Nango Xus

28/04/2008

Essa ae já tentei mas não da :cry: Ele so importa dll, ocx, dlb e tlb...
Mas toda informação é valida.

Olha so, de onde vc tirou esse codigo que me passou? precisava ver mais alguns exemplos, pois com esse codigo minha barra de monitoramento fica uma reta, ela não muda suavemente apenas fica uma reta. Já tentei alterar os tempos mas não infuenciou muito...

Abraços


GOSTEI 0
Rodc

Rodc

28/04/2008

O código eu tirei do programa de exemplos do TChart. Procura lá na pasta de exemplos do Delphi a pasta TeeChart.


GOSTEI 0
Nango Xus

Nango Xus

28/04/2008

PRONTO!!!!!!!! :D
Tah na mão, agora a linha ficou ok!!

Segue código aos interessados:

Sender.GetHorizAxis.Automatic := False; // <-- we dont want automatic scaling

Sender.GetHorizAxis.Minimum := Sender.XValues.MaxValue - 100;

Sender.GetHorizAxis.Maximum := Sender.XValues.MaxValue + StrToTime(´00:00:03´); // Começa um pouco antes do fim

Vlw rodc!


GOSTEI 0
POSTAR