Форум: "Основная";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
ВнизКак зоблокировать TChart на время рисвания на нем? Найти похожие ветки
← →
Kolan © (2007-02-06 10:31) [0]Допустим я рисую так:
Clear; //Очищаю серию.
for I := Low(Arr) to High(Arr) do
AddXY(Arr[I].X, Arr[I].Y*1000);
Как заблокировать чарт на время рисования? То нужно что-то вроде:
//Заблокировал
Clear;
for I := Low(Arr) to High(Arr) do
AddXY(Arr[I].X, Arr[I].Y*1000);
//Разблокировал. И только тут нарисованое появилось на чарте.
← →
Kolan © (2007-02-06 10:54) [1]О то мигает :)
← →
Kolan © (2007-02-06 11:37) [2]А нет ли у кого Help"а к чарту для Pro версии?
← →
ЮЮ © (2007-02-06 12:22) [3]TCanvas(Chart1.Canvas).Lock;
← →
ЮЮ © (2007-02-06 12:32) [4]Сорри, tuj Canvas вовсе и не TCanvas.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i: integer;
begin
Chart1.Locked := true;
try
Series1.Clear;
for i := 0 to 1000 do
Series1.AddXY(Random, Random);
finally
Chart1.Locked := false;
end;
end;
← →
Kolan © (2007-02-06 13:08) [5]Это я пробовал :)
Ввел для проверки Sleep.procedure TSerieGraph.Draw(Arr: TDoublePointArray);
var
I: Integer;
begin
FChart.Locked := True;
try
Clear;
//TODO: Be careful.
{Be careful with 1000 multiplication!!!}
for I := Low(Arr) to High(Arr) do
begin
AddXY(Arr[I].X, Arr[I].Y*1000);
Sleep(10);
end;
finally
FChart.Locked := False;
end;
end;
FChart.Locked - непомогает. Так как я вижу см процес рисования. А по идее должна быть задержка, а потом сразу все появится.
← →
Kolan © (2007-02-06 13:10) [6]
procedure TSerieGraph.Draw(Arr: TDoublePointArray);
var
I: Integer;
begin
FSerie.BeginUpdate;
try
Clear;
//TODO: Be careful.
{Be careful with 1000 multiplication!!!}
for I := Low(Arr) to High(Arr) do
begin
AddXY(Arr[I].X, Arr[I].Y*1000);
Sleep(10);
end;
finally
FSerie.EndUpdate;
end;
end;
А тьфу. работает EndUpdate. Просто я его не там применил :) Благодарю за помошь :)
← →
ЮЮ © (2007-02-06 13:17) [7]
> Так как я вижу см процес рисования.
А я только задежку при пошом колтчестве точек
С твоими обёртками нет уверенности, что FChart и TSerieGraph как-то связаны.
Если бы это был метод обертки для TChart, а не для TLineSeries ^)
← →
Kolan © (2007-02-06 13:19) [8]> С твоими обёртками нет уверенности,
:) Если бы ты узнал как обернут чарт ты бы "ужаснулся". Там целый менеджер графиков, который создает их динамически. И графики разных типов :)
В любом случае BeginUpdate - рулит.
← →
Kolan © (2007-02-06 13:33) [9]Беру свои слова назад. EndUpdate влияет на AddXY - те не видно процес исования.
Но на FSerie.Clear не влияет. Те мигание есть.
← →
Kolan © (2007-02-06 14:01) [10]А есть у кого справка на Locked и EndUpdate ?
← →
Kolan © (2007-02-06 15:56) [11]Может можно наследника сделать TChartSeries? Исходник есть.
Толкьо непонятный он:{ Removes all points.
Triggers all events and notifications and repaints. }
Procedure TChartSeries.Clear;
begin
FFirstVisibleIndex:=-1; // 7.0 #1281
FLastVisibleIndex:=-1;
ClearLists;
if Assigned(FOnClearValues) then FOnClearValues(Self);
NotifyValue(veClear,0);
if Assigned(FunctionType) then FunctionType.Clear;
if FActive and Assigned(FParent) and
(not (csDestroying in FParent.ComponentState)) then Repaint;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c