Grafico de desempenho com TCHART
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 !
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
Curtidas 0
Respostas
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:
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
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:
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
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++.
É verdade, olhei o código fonte do componente e está em C++.
GOSTEI 0
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
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.
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
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
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
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
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!
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