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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> постоянная перерисовка, дин. созданных компонентов 
:(
    Опции темы
Rennigth
Дата 19.8.2004, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Всем привет.
Вобщем я создаю динамически много мелких компонентов (Панелей(скиновых) ) на 3х ScrolBoxах. И я не понимаю на двух Scrollboxах все нормально, а на третьей они при появлении постоянно перерисовываются(если их закрывает чужое окно, или просто после создании как формапоявляется) при чем перерисовываются только те которых например закрывало чужое окно. Я раньше много делал таких структур и все нормально работало. А щас я непонимаю почему. Если кому не лень посмотрите.

Это на создании формы

Код

var
 pnlData : array [0..10000] of TbsskinPanel;
 lbData  : array [0..10000] of Tlabel;
 pnlSurname, pnlDate: TbsskinPanel;
 lbSurname : TLabel;


procedure TfmJournal.CreateJournal;
var
 Index:integer;
 j,i:integer;
begin
 LockWindowUpdate(GroupBox1.Handle); // на  нем лежат скроллбоксы
//  InvalidateRect(GroupBox1.Handle,nil,false);

 Index:= 0;
 ActiveIndex := -1;

 for i:= 0 to 15 do  
 begin
   if i<>0 then begin
     pnlDate:=TbsSkinPanel.create(sbDateLessons);
     pnlDate.Parent := sbDateLessons;
     pnlDate.Height := 40;
     pnlDate.Width := 20;
     pnlDate.Top := 0;
     pnlDate.Left := i*20-20;
     pnlDate.OnClick := pnlDateClick;
     pnlDate.SkinData := fmMain.bsSkinData1;
   end;
   for j:=0 to High(StudentsList) do  // грубо говоря массив строковый
   begin
     if i=0 then begin
       pnlSurname:=TbsSkinPanel.create(sbStudentsList);
       pnlSurname.Parent := sbStudentsList;
       pnlSurname.Height := 20;
       pnlSurname.Width := 150;
       pnlSurname.Top := j*20;
       pnlSurname.Left := 0;
       pnlSurname.SkinData := fmMain.bsSkinData1;

       lbSurname:= Tlabel.Create(pnlSurname);
       lbSurname.Parent := pnlSurname;
       lbSurname.Caption := StudentsList[j].Surname + ' ' + StudentsList[j].name;
       lbSurname.Left := 3;
       lbSurname.Top:=3;
       lbSurname.Transparent :=true;

     end else begin

// вот эти панели перерисовываются

       pnlData[Index] := TbsSkinPanel.Create(sbData);
       pnlData[Index].Parent := sbData;
       pnlData[Index].Width := 20;
       pnlData[Index].Height:= 20;
       pnlData[Index].Left := i*20-20;
       pnlData[Index].Top  := j*20;
       pnlData[Index].OnClick := pnlDataClick;
       pnlData[Index].Cursor := crHandPoint;
       pnlData[Index].SkinDataName := 'whitepanelblueborder';
       pnlData[Index].SkinData := fmMain.bsSkinData1;
       pnlData[Index].Tag:= Index;

       lbData[Index]:= TLabel.Create(pnlData[Index]);
       lbData[Index].Parent := pnlData[Index];
       lbData[Index].Transparent := true;
       lbData[Index].Left := 6;
       lbData[Index].OnClick := pnlDataClick;
       lbData[Index].Top := 3;
       lbData[Index].Tag:=Index;
       lbData[Index].Transparent :=true;

       Inc(Index);
     end;
   end;
  end;
  LockWindowUpdate(0);
end;


если хоть на мысль наведете буду очень благодарен.


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Viruser
Дата 20.8.2004, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 4.8.2004
Где: Ukraine, Melitopo l

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



Можно попробовать поставить хук на перерисовку окна(например ScrollBox'ов).
Код
PostMessage(ScrollBox1.Handle,WM_SETREDRAW,0,0);

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

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

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

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

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


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

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


 




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


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

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