Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Про поток и TImage [D6, WinXP]


k-sergey ©   (2004-08-08 10:55:00) 

На форме создается динамически куча Timage и в них загружаются картинки.
Если картинок много, форма естественно тормозит.
Как можно создавать Timage в отдельном потоке?


Думкин   (2004-08-08 14:13:00) [1]

> [6] k-sergey ©   (08.08.04 12:06)

Если все понятно, то в чем вопрос?


k-sergey   (2004-08-08 12:06:00) [2]

ну тут вроде все понятно:

procedure TForm1.LoadPic(alldir:string);
Var ii, n, nn, x , y, q:integer;
begin
n:=FileListBox4.Count;  //всего файлов
nn:=1; // номер компонента
x:=2;
y:=1;
ScrollBox1.Visible:=false;
  for ii:= 1 to q do //  кол-во в строке
   begin
     with TImage.Create(Self) do begin //создаем картинки
       Parent:=ScrollBox1;
       Name:='Image'+inttostr(nn);
       Height:=128;
       Width:=128;
       Top:=Y;
       Left:=x;
       Center:=true;
       Picture.LoadFromFile(alldir+'\'+FileListBox4.Items[nn-1]); // загружаем изображение
      end;
     inc(nn);
     x:=x+128+2;
   end;
  y:=y+128+2;
  x:=2;
 end;
ScrollBox1.Visible:=True;
end;


Думкин   (2004-08-08 11:52:00) [3]

>  [4] k-sergey ©   (08.08.04 11:28)

Нет. Для начала в коде - меня он напрягает. И когда сюда - используй тег -


k-sergey   (2004-08-08 11:28:00) [4]

в чем?
в потоках нет....
иначе не просил помочь...
так блин тормозит


Думкин   (2004-08-08 11:24:00) [5]

Похвально. Разобрался?


k-sergey   (2004-08-08 11:22:00) [6]

я не очень в потоках шарю...:-\
Вот возникла необходимость разобраться.

procedure TForm1.LoadPic(alldir:string);
Var IdUser, i, ii, n, x , y,q:integer;
begin
FileListBox4.Directory:=alldir;
For x:=1 to nn do TImage(FindComponent('Image'+inttostr(x))).Free;
// создаем Image
n:=FileListBox4.Count;  //всего файлов
nn:=1; // номер компонента
x:=2;
y:=1;
PathNamePic:=TStringList.Create;
ScrollBox1.Visible:=false;
 for i:=1 to (round((n/5)+0.5)) do //ряды
  begin
   if (n-nn)>=5 then q:=5 else q:=(n-nn+1);
   //Caption:='x= '+inttostr(q);
   for ii:= 1 to q do //  кол-во в строке
    begin
      with TImage.Create(Self) do begin
        Parent:=ScrollBox1;
        Name:='Image'+inttostr(nn);
        Height:=128;
        Width:=128;
        Top:=Y;
        Left:=x;
        Center:=true;
        try
        Picture.LoadFromFile(alldir+'\'+FileListBox4.Items[nn-1]);
        except Picture:=Im26.Picture; end;
        OnDblClick:=OnImageClick;
       end;
      PathNamePic.Add(alldir+'\'+FileListBox4.Items[nn-1]);
      inc(nn);
      x:=x+128+2;
    end;
   y:=y+128+2;
   x:=2;
  end;
ScrollBox1.Visible:=True;
end;


Думкин   (2004-08-08 11:18:00) [7]

Ручками? Или это оттягивание во времени фразы: код давай?


Наверх

Титульная страница Поиск, карта сайта Написать письмо