나는 Firemonkey 및 XE3 환경의 초보자입니다.TeeChart 업데이트하는 방법
내 프로그램은 일부 계산을 수행하며 TeeChart 구성 요소를 사용하여 사용자에게 피드백을 제공해야합니다.
OnClick()
begin
while(boolContinue) do
begin
NextStep(boolContinue);
DoSomeCalculations();
UpdateTeeChart();
end;
end;
저는 Delphi7에서 Application.ProcessMessage를 사용했습니다. FireMonkey 응용 프로그램에서는 단일 ProcessMessage 호출을 만들기 위해 거의 1 초가 걸리는 것으로 보입니다.
TChart (TLineSeries/TeeChart Lite v 2012.06.120613)를 업데이트하는 적절한 방법은 무엇입니까? HandleMessage (작동하지만 느린) - - 을 처리 페인트 메시지 만 (작동하지만 느린) - 무효화 (나던 작업) - 다시 칠 (나던 작업)
나는 또한에 tryied :
나는 tryied 성공하지 못한 쓰레드를 사용하라.
편집 :
추가하는 간단한 테스트 프로그램 :
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes,
System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs,
FMXTee.Engine, FMXTee.Procs, FMXTee.Chart, FMXTee.Series;
type
TForm1 = class(TForm)
Chart1: TChart;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
var
line : TLineSeries;
ii, x1, x2 : integer;
begin
line := TLineSeries.Create(chart1);
line.ParentChart := chart1;
for ii := 1 to 100 do
begin
line.AddXY(ii, random(20));
// Do some calculations...
self.Caption := IntToStr(ii);
for x1 := 1 to 10000 do
for x2 := 1 to 1000 do
begin
end;
end;
end;
end.
'ProcessMessages'는 결코 옳은 일이 아니 었습니다. 아마도 당신은 SSCCE를 줄 수있어서 좋은 조언을 줄 수 있습니다. –
'Chart1.Draw();'시도해 봤어? – Yeray
chart1.Draw()가 도움이되지 않습니다. – user3509858