![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет!
Может кто-нибудь подсказать как программно на форму можно закинуть большое количество изображений??? Решил попробовать много image создать, но они не поддерживают индексацию, а в ручную очень уж не удобно(( Подскажите пожалуйста кто знает! |
|
#2
|
|||
|
|||
|
1. Ты руками их создаешь?
2. Что конкретно ты хочешь? Пусть у нас есть папочка с картинками. Пусть они имеют какой-то размер. Нам надо: 1. Получить список картинок (FindFirst/FindNext/FindClose). Поместим это список в некоторый TStringList. 2. Надо пройти по этому листу, для каждого Item'а создать объект на форме и ссылку на него положить в свойство Objects нашего списка строк. Что мы имеем: 1. Динамически созданные картинки (сколько надо) 2. Список со ссылками на все наши картиночные компоненты. |
|
#3
|
|||
|
|||
|
Да, все верно, у меня есть папка с изображениями, мне нужно на форму где я предварительно создал много image-ов)) распихать эти картинки в случайном порядке) Только вот не могу пока понять функцию FindFirst к сожалению(
Или есть способ не создавать много image??? |
|
#4
|
||||
|
||||
|
Код:
var
path: String;
searchrec: TSearchRec;
ext: String;
image: TImage;
n: Integer;
begin
Randomize;
n:=0;
path:=IncludeTrailingPathDelimiter(Edit1.Text);
if FindFirst(path+'*.*', 0, searchrec)=0 then
begin
repeat
if (searchrec.Attr and faDirectory)=0 then
begin
ext:=LowerCase(ExtractFileExt(searchrec.Name));
if (ext='.jpeg') or (ext='.jpg') or (ext='.bmp') then
begin
image:=TImage.Create(Self);
image.Parent:=Self;
image.AutoSize:=False;
image.Stretch:=True;
image.Width:=120;
image.Height:=120;
image.Left:=Random(ClientWidth)-image.Width;
image.Top:=Random(ClientHeight)-image.Height;
image.Picture.LoadFromFile(path+searchrec.Name);
Application.ProcessMessages;
Inc(n);
if n>50 then Break;
end;
end;
until FindNext(searchrec)<>0;
FindClose(searchrec);
end;полный пример |