Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2011, 14:59   #1
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию Запретить перерисовку TChart

здравствуйте, извиняюсь за глупый вопрос ужа давно с Delphi не работал, прогуглить не получилось, ответа так и не нашел. Вобщем есть у меня TChart, я из определенного буфера добавляю точки (от 50000) на серию, все это делаю в потоке (если этого не делать, то форма виснет от 2с и выше - зависит от размера буфера, что меня не устраивает), а TChart вот что делает при работе из потока - да форма не виснет, но он начинает добавлять точки динамически медленно на несколько порядков дольше чем не в потоке. Так вот вопрос как бы не отказываясь от потока запретить перерисовку TChart, а после построения разрешить???
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 24.11.2011, 15:27   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Chart.Visible:=False не пробовали? А по завершению потока Chart.Visible:=True
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.11.2011, 16:01   #3
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Во-первых, VCL однопоточна. Нельзя к ней обращаться из фоновых потоков.

Во-вторых, для массовых действий в Delphi есть стандартные вызовы Begin/EndUpdate, например:

Код:
  Chart1.Series[0].BeginUpdate;
  try
    for ItemIndex := 0 to High(Items) do
      Chart1.Series[0].AddXY(Items[ItemIndex].X, Items[ItemIndex].Y);
  finally
    Chart1.Series[0].EndUpdate;
  end;
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 25.11.2011, 11:29   #4
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

GunSmoker, это немного помогло.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Tchart GenniY Компоненты Delphi 0 11.04.2011 20:05
TChart crit Компоненты Delphi 18 30.03.2011 17:51
Tchart helpprogramh Фриланс 1 11.01.2011 18:59
TChart nataly60 Помощь студентам 1 06.06.2008 19:13
Tchart Droid Общие вопросы Delphi 9 27.05.2008 20:38