Форум: "Начинающим";
Текущий архив: 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.008 c