Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.01;
Скачать: CL | DM;

Вниз

Еще вопрос, у меня долго прорисовывается форма   Найти похожие ветки 

 
smartleds   (2008-12-16 21:23) [0]

пока это процесс идет нужно сообщить пользователю, чтобы он не нерничал типа" обожди пару минут все будет ОК" .
При помощи какой компоненты это лучше сделать?


 
{RASkov} ©   (2008-12-16 21:26) [1]

Лучше исправить алгоритм с прорисовкой формы.... иначе получится лажа с тасканием над ней других форм...


 
smartleds   (2008-12-16 21:34) [2]

У меня рисуется массив трэк баров до 500 штук и пока он рисуется хотелось бы вывести какое нибудь окошко с предупреждением.

ArrOfTrackBar[i]:=TTrackBar.Create(self);
ArrOfTrackBar[i].Parent:=ScrollBox1;
ArrOfTrackBar[i].Orientation:=trVertical;
ArrOfTrackBar[i].min:=0;
ArrOfTrackBar[i].max:=255;
ArrOfTrackBar[i].Position:=128;
ArrOfTrackBar[i].Width:=40;
ArrOfTrackBar[i].Height:=150;
ArrOfTrackBar[i].Left:=X2;
ArrOfTrackBar[i].Top:=Y2;
ArrOfTrackBar[i].Tag := i;
ArrOfTrackBar[i].OnChange := form1.TrackBarChange;


 
Правильный$Вася   (2008-12-16 22:02) [3]


> массив трэк баров до 500 штук

мамма мия!
и шо ты с ними делаешь?!


 
{RASkov} ©   (2008-12-16 22:08) [4]

> [2] smartleds   (16.12.08 21:34)

Ну это не прорисовка, а создание....
Вот примерно так + небольшая оптимизация, дающая небольшой прирост в скорости создания:
 with TForm.Create(nil) do try
  Position:=poScreenCenter;
  FormStyle:=fsStayOnTop;
  Width:=300;
  Height:=100;
  Show;
  for i:= Low(ArrOfTrackBar) to High(ArrOfTrackBar) do begin
   ArrOfTrackBar[i]:=TTrackBar.Create(self);
   ArrOfTrackBar[i].Orientation:=trVertical;
   ArrOfTrackBar[i].min:=0;
   ArrOfTrackBar[i].max:=255;
   ArrOfTrackBar[i].Position:=128;
   ArrOfTrackBar[i].SetBounds(45*i, 10, 40, 150);
   ArrOfTrackBar[i].Tag := i;
   ArrOfTrackBar[i].OnChange := form1.TrackBarChange;
   ArrOfTrackBar[i].Parent:=ScrollBox1; //сначало настраиваем свойства, и только потом отрисовываем, назначив парента...
   Caption:=Format("Создано трэкбаров %d из %d", [i, High(ArrOfTrackBar)]); //тут тоже можно High заменить на константу для скорости
   //Application.ProcessMessages; // по желанию.... т.н. по нужде)
  end;
 finally
  free;
 end;

Так же на показываюмую форму можно поместить прогрессбар.... для наглядности....)
Ну и у меня тот же вопрос, что в [3] :)


 
smartleds   (2008-12-16 22:50) [5]

Ясно спасибо БОЛЬШОЕ , с окошком предупреждением, я так понял идея не очень хорошая.  
Это управление светом по DMX512 протоколу, там 512 каналов и нужно у каждого канала независимо от других менять  интенсивность света.
При помощи TrackBar-ов я это и делаю.


 
sniknik ©   (2008-12-16 22:51) [6]

> массив трэк баров до 500 штук
не так уж и много... для компа, вот для человека труднее...

> Вот примерно так + небольшая оптимизация, дающая небольшой прирост в скорости создания:
небольшая это на сколько?
реальное ускорение это не дать паренту перестраиваться/перерисовываться на каждом добавлении объекта. т.е. в этом случае до цикла ставим

ScrollBox1.DisableAlign;
for i:= Low(ArrOfTrackBar) to High(ArrOfTrackBar) do begin
...
end;

после
ScrollBox1.EnableAlign;
и перестраиваем сами, т.е. один раз на все.
ScrollBox1.Realign;

должно ускориться.


 
{RASkov} ©   (2008-12-17 01:06) [7]


> sniknik ©   (16.12.08 22:51) [6]

> небольшая это на сколько?

ну быстрее чуть-чуть по сравнению с кодом из [0] :) может даже и не чуть-чуть) ....может даже раза в 2
Ну да, а с этим
ScrollBox1.DisableAlign;
....
ScrollBox1.EnableAlign;

Еще быстрее примерно на столько же....

Я это все "на глаз" сравнивал :)


 
Германн ©   (2008-12-17 01:21) [8]

Чем только ...


 
{RASkov} ©   (2008-12-17 01:31) [9]

> [8] Германн ©   (17.12.08 01:21)
> Чем только ...

...не страдают? :)


 
Германн ©   (2008-12-17 01:38) [10]


> {RASkov} ©   (17.12.08 01:31) [9]

Угу.
Мне бы их "якобы" проблемы.



Страницы: 1 вся ветка

Текущий архив: 2009.02.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
2-1229506635
abhtr
2008-12-17 12:37
2009.02.01
Проблема с rchForReport: TRichEdit


2-1229508124
neveGreen
2008-12-17 13:02
2009.02.01
InternetConnect ()


15-1228848341
Керк
2008-12-09 21:45
2009.02.01
SSL и Apache


15-1228746981
Putnik
2008-12-08 17:36
2009.02.01
Интернет-кафе


2-1229778321
Test
2008-12-20 16:05
2009.02.01
Stored