Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамически созданные компоненты долго создаются. Как это исправить. 
V
    Опции темы
ivan219
Дата 23.10.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Вобщем создаю динамически компоненты в EXE а в DLL вызвавю процедуры которые создают  компоненты так вот когда их много т.е. 20 и болеш то время их загрузки и прорисовки на форме довольнотоки большое и видно мирцание.

Как от этого избавится smile 
Код

function CreateControl: PChar; StdCall;
var
   I,X:Integer;
begin
 X:=0;
 Result:=NameTabSheet[0];
 TabSheetCreate(NameTabSheet[0],'PageControl','Дроссель',True,
  HInstance);
 PageControlCreate(NamePageControl,NameTabSheet[0]);
 TabSheetCreate(NameTabSheet[1],NamePageControl,'Цветомаркировка->Номинал',False,
  HInstance);
 TabSheetCreate(NameTabSheet[2],NamePageControl,'Номинал->Цветомаркировка',False,
  HInstance);

 ButtonCreate(NameButtonCleanerColor,NameTabSheet[1],'Очистить',162,554,True);
 ImageCreate(NameImageColor[0],NameTabSheet[1],'LEFT','',50,168,HInstance,True,
  False,True);
 ImageCreate(NameImageColor[1],NameTabSheet[1],'RAZDEL2','',56,280,HInstance,
  False,False,True);
 ImageCreate(NameImageColor[2],NameTabSheet[1],'RAZDEL1','',56,301,HInstance,
  False,False,True);
 ImageCreate(NameImageColor[3],NameTabSheet[1],'RAZDEL2','',56,318,HInstance,
  False,False,True);
 ImageCreate(NameImageColor[4],NameTabSheet[1],'RAZDEL2','',56,339,HInstance,
  False,False,True);
 ImageCreate(NameImageColor[5],NameTabSheet[1],'RAZDEL2','',56,360,HInstance,
  False,False,True);
 ImageCreate(NameImageColor[6],NameTabSheet[1],'RAZDEL2','',56,381,HInstance,
  False,False,True);
 ImageCreate(NameImageColor[7],NameTabSheet[1],'RAZDEL2','',56,402,HInstance,
  False,False,True);
 ImageCreate(NameImageColor[8],NameTabSheet[1],'RIGHT','',50,423,HInstance,
  True,False,True);
 GroupBoxCreate(NameGroupBox[0],NameTabSheet[1],'Ответ',260,443,185,56,True,True);
 LabelCreate(NameLabe[0],NameGroupBox[0],'Номинал',15,5,True,False);
 LabelCreate(NameLabe[1],NameGroupBox[0],'??',15,100,True,False);
 LabelCreate(NameLabe[2],NameGroupBox[0],'Погрешность',35,5,True,False);
 LabelCreate(NameLabe[3],NameGroupBox[0],'20%',35,100,True,False);
// LabelCreate(NameLabe[4],NameTabSheet[1],'Первая полоса',200,100,True,True);
 RadioGroupCreate(NameRadioGroup,NameTabSheet[1],'Число полос',210,443,83,40,0,
  2,ItemsRadioGroup,True);

 GroupBoxCreate(NameGroupBox[2],NameTabSheet[1],'Первая полоса',210,10,206,
  35,False,True);
 for I:=0 to 8 do
  begin
   ShapeCreate(NameSheep[I],NameGroupBox[2],HintSheepe[I+1],
    14,5+X,20,15,10+I,I+1,True,False);
   Inc(X,22);
  end;
 X:=0;
 GroupBoxCreate(NameGroupBox[3],NameTabSheet[1],'Вторая полоса',250,10,228,
  35,False,True);
 for I:=0 to 9 do
  begin
   ShapeCreate(NameSheep[I+9],NameGroupBox[3],HintSheepe[I],
    14,5+X,20,15,20+I,I,True,False);
   Inc(X,22);
  end;
 X:=0;
 GroupBoxCreate(NameGroupBox[4],NameTabSheet[1],'Третия полоса',290,10,272,
  35,False,True);
 for I:=0 to 11 do
  begin
   ShapeCreate(NameSheep[I+19],NameGroupBox[4],HintSheepe[I],
    14,5+X,20,15,30+I,I,True,False);
   Inc(X,22);
  end;
 GroupBoxCreate(NameGroupBox[5],NameTabSheet[1],'Четвёртая полоса',330,10,110,
  35,False,True);
 ShapeCreate(NameSheep[31],NameGroupBox[5],HintSheepe[0],
  14,23,20,15,50,0,True,False);
 ShapeCreate(NameSheep[32],NameGroupBox[5],HintSheepe[10],
  14,45,20,15,51,10,True,False);
 ShapeCreate(NameSheep[33],NameGroupBox[5],HintSheepe[11],
  14,67,20,15,52,11,True,False); 



  

 ButtonCreate(NameButtonCleanerDrossel,NameTabSheet[2],'Очистить',162,554,True);
 ImageCreate(NameImageDrossel[0],NameTabSheet[2],'LEFT','',50,168,HInstance,
  True,False,True);
 ImageCreate(NameImageDrossel[1],NameTabSheet[2],'RAZDEL2','',56,280,HInstance,
  False,False,True);
 ImageCreate(NameImageDrossel[2],NameTabSheet[2],'RAZDEL1','',56,301,HInstance,
  False,False,True);
 ImageCreate(NameImageDrossel[3],NameTabSheet[2],'RAZDEL2','',56,318,HInstance,
  False,False,True);
 ImageCreate(NameImageDrossel[4],NameTabSheet[2],'RAZDEL2','',56,339,HInstance,
  False,False,True);
 ImageCreate(NameImageDrossel[5],NameTabSheet[2],'RAZDEL2','',56,360,HInstance,
  False,False,True);
 ImageCreate(NameImageDrossel[6],NameTabSheet[2],'RAZDEL2','',56,381,HInstance,
  False,False,True);
 ImageCreate(NameImageDrossel[7],NameTabSheet[2],'RAZDEL2','',56,402,HInstance,
  False,False,True);
 ImageCreate(NameImageDrossel[8],NameTabSheet[2],'RIGHT','',50,423,HInstance,
  True,False,True);
 GroupBoxCreate(NameGroupBox[1],NameTabSheet[2],'Ответ',260,443,185,56,True,True);
 LabelCreate(NameLabe[7],NameGroupBox[1],'Номинал',15,5,True,False);
 LabelCreate(NameLabe[8],NameGroupBox[1],'??',15,100,True,False);
 LabelCreate(NameLabe[9],NameGroupBox[1],'Погрешность',35,5,True,False);
 LabelCreate(NameLabe[10],NameGroupBox[1],'??',35,100,True,False);
end;

PM MAIL ICQ   Вверх
Демо
Дата 23.10.2006, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Как обычно - свойство DoubleBuffered нужно установить в True.


--------------------
    
PM MAIL ICQ Skype   Вверх
ivan219
Дата 23.10.2006, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Цитата(Демо @  23.10.2006,  23:37 Найти цитируемый пост)
Как обычно - свойство DoubleBuffered нужно установить в True.

Я знаю но это неспасает.
PM MAIL ICQ   Вверх
Romikgy
Дата 25.10.2006, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Я так понял все на 
Цитата(ivan219 @  23.10.2006,  21:58 Найти цитируемый пост)
TabSheet

, я бы сделал его невидимым, а после всех созданий, показал на форме


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ivan219
Дата 25.10.2006, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Romikgy, результат отличный smile 
PM MAIL ICQ   Вверх
Romikgy
Дата 25.10.2006, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



ivan219, поздравляю


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.