![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про поток и 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]Ручками? Или это оттягивание во времени фразы: код давай?