|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.12.2007, 17:36 | #1 |
Пользователь
Регистрация: 08.07.2007
Сообщений: 76
|
Вывод на экран сразу несколько картинок
Всем привет, у меня есть массив, содержащий пути к картинкам, мне нужно вывести на форму сразу все эти картинки в уменьшенном варианте, типа как превью!!! Подскажите, как это сделать...
Только начал изучать Delphi...
|
12.12.2007, 17:41 | #2 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Решение "в лоб" - кинуть на форму TScrollBox и понасоздовать в нём динамически TImage для каждой картинки. Памяти наверно скушает немеряно
Или, если миниатюры не должны ни на что реагировать, достаточно будет одного TImage, куда они и будут выводится, например с помощью CopyRect М.б. также подойдёт TListView.
пыщь
Последний раз редактировалось JTG; 12.12.2007 в 17:44. |
12.12.2007, 17:48 | #3 |
Пользователь
Регистрация: 08.07.2007
Сообщений: 76
|
А как динамически создавать? Примерчик можно пожалуйста!
Только начал изучать Delphi...
|
12.12.2007, 19:41 | #4 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Как-то приблизительно так
Код:
Не, надо всё-таки придумать что-то пооптимальнее
пыщь
|
12.12.2007, 20:08 | #5 |
The First Person!
Форумчанин
Регистрация: 07.08.2007
Сообщений: 228
|
Короче обьясняю! Создаешь объект Panel. С помощью свойства Anchor настрой его так, чтобы он заполнял всю форму и изменялся вместе с ней(в размерах). Вот код, работать будем со свойством Paint.
procedure TWinForm31.Panel1_Paint(sender: System. Object; e: System.windows.Forms.PaintEventArgs ); const GRExts : String = 'bmp jpg gif png'; \\Поддерфиваемые форматы var Files : array of String; NewImg : Image; i : Integer; Ext : String; begin Files:= System.IO.Directory.GetFiles('ГДЕ ЛЕЖАТ КАРТИНКИ') For i := 0 to Length(Files) - 1 do begin Ext := Files[i].substring(Length (Files[i]) - 2; If GrExts.IndexOf (Ext) > 0 then begin NewImg := Image.FormFile (Files[i]) .GetThumbnailImage(100,100,nil,nil) ; e.Graphics.DrawImage (NewImg, Point.Create((i mod 5) *150,(i div 5) *120)); NewImg.Free; end; end; end; УДАЧИ!!!
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
|
12.12.2007, 20:16 | #6 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Гениально!
И, заметьте, это вам с апломбом объясняет человек, который в соседнем посте спрашивает, как вывести на форму картинку по нажатию баттона... |
13.12.2007, 00:21 | #7 | |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
Цитата:
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вывод на экран | Nikolai_90 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 11 | 02.05.2012 09:25 |
сделать интерактивный тест чтоб по локальной сети его проходили сразу несколько человек | CheGuevera | БД в Delphi | 4 | 10.06.2008 19:21 |
Вывод на 2-ой экран | DShiller | Общие вопросы Delphi | 0 | 26.05.2008 15:25 |
Вывод картинок в уменьшеном виде | nikleb | PHP | 3 | 17.03.2008 00:20 |