Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.02.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
3-1213956787
keymaster
2008-06-20 14:13
2009.02.01
Проблема с ODAC при работе с Oracle Instant Client


15-1228377608
pasha_golub
2008-12-04 11:00
2009.02.01
Delphi 7 вываливается


2-1229789252
self
2008-12-20 19:07
2009.02.01
ticqclient в dll


15-1228719875
pavel_guzhanov
2008-12-08 10:04
2009.02.01
Как отключить оптимизатор в Delphi7


2-1229374412
bit
2008-12-15 23:53
2009.02.01
TListView get item





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский