Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
2-1173775558
Choco
2007-03-13 11:45
2007.04.01
установить ключевое поле


15-1173103271
kichrot
2007-03-05 17:01
2007.04.01
ТЫ ИЗБРАЛ - ТЕБЕ СУДИТЬ!


15-1173280682
Канадец
2007-03-07 18:18
2007.04.01
Talking to Americans on the streets


2-1173306689
Ezorcist
2007-03-08 01:31
2007.04.01
сколько в памяти займет integer ?


3-1168348619
novill
2007-01-09 16:16
2007.04.01
IB 7.5 Как хр. процедуре в переменнной типа date обнулить время?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский