Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
6 / 6 / 0
Регистрация: 11.03.2011
Сообщений: 65
1

Несколько картинок в PictureBox

11.03.2011, 11:02. Показов 3235. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Можно ли разместить две и больше картинок одинакового размера в PictureBox програмным способом?
Дело в том, что у меня програмка генерирует 3 числа от 1 до 5, эти числа складываются в одно и получается имя файла (рисунка) & ".jpg" и так несколько раз. Мне надо что бы в PictureBox загружались картинки одна за одной так чтоб получилась полоса из картинок. Это реально или нет?
Большое спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2011, 11:02
Ответы с готовыми решениями:

Ограничения по загрузке LoadPicture JPG-картинок в PictureBox
Народ, кто знает какие есть ограничения по загрузке LoadPicture JPG-картинок в PictureBox. Из 50...

Несколько графиков в одном PictureBox
Привет! В общем проблема в следующем. С помощью цикла на одном пикчербоксе создается несколько (не...

в pictureBox несколько картинок
Вечер добрый всем :) Задача в том, что бы в одном pictureBox нарисовать допустим 2 разных...

В одном PictureBox отобразить несколько картинок
Добрый вечер! Помогите советом пожалуйста, необходимо в одном PictureBox отобразить несколько...

14
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.03.2011, 11:16 2
может быть загружать картинки в Image1, которые размещать в PictureBox, как в контейнере, а дальше выравнивать их, к тому же можна воспользоваться Image1.Stretch для подгонки размеров самих картинок
0
6 / 6 / 0
Регистрация: 11.03.2011
Сообщений: 65
11.03.2011, 11:46  [ТС] 3
Спасибо за подсказку. Теперь возникает второй вопрос, как создавать Image програмным методом.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.03.2011, 11:58 4
размести в PictureBox Image1 в свойствах укажи для Image1 Index=0
можна сделать его невидимым и разместить у левого края Image1(0).Left = -Image1(0).Width
Image1(ind + 1).Top=0 'где необходимо
при загрузке формы поставь, например, ind=0
тогда
Visual Basic
1
2
3
4
5
6
7
8
9
Dim ind%
Private Sub Command1_Click()
Load Image1(ind + 1)
Image1(ind + 1).Visible = True
Image1(ind + 1).Left = Image1(ind).Left + Image1(ind).Width
Image1(ind + 1).Top = Image1(ind).Top
Image1(ind + 1).Picture=loadpicture(....)
ind = ind + 1 ' для следующей загрузки
End Sub
1
6 / 6 / 0
Регистрация: 11.03.2011
Сообщений: 65
11.03.2011, 13:49  [ТС] 5
Огромное приогромное спасибо, все работает.

Добавлено через 20 минут
Еще один вопрос. Как проделать то же самое только с нового ряда со смещением на половину.
Спасибо.

Добавлено через 39 минут
Эх, и на этом огромное спасибо.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.03.2011, 14:24 6
как то так
Visual Basic
1
2
3
4
If Image1(ind ).Left=правый край Then
Image1(ind +1).Left=Image1(0).Left+Image1(0).Width
Image1(ind + 1).Top = Image1(ind).Top + Image1(ind).Haigt или где нужно
End If
1
6 / 6 / 0
Регистрация: 11.03.2011
Сообщений: 65
11.03.2011, 15:01  [ТС] 7
Если я правильно понял, то Image1(ind ).Left=правый край значит что левый край Image1 достиг правого края PictureBox.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.03.2011, 15:32 8
что б без заморочек , то Image1(ind ).Left=правый край пикчер-Image1(ind ).Width
т.е., Image1(ind ) еще полностью размещена в ряду (последней в ряду)
еще проще считать количество картинок в ряду, например если 4 - то переходим на следующий ряд:
точкой отсчета можна считать Image1(0)
его Left - это начало ряда
а Top - каждый следующий ряд Image1(0)Top+Image1(0).Haigt*(№ряда-1) /ряды считаем от 1/
1
6 / 6 / 0
Регистрация: 11.03.2011
Сообщений: 65
11.03.2011, 16:27  [ТС] 9
Я запутался. У меня картинки теперь по диагонали добавляются, как установить ее в начало следуещего ряда?
Спасибо.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.03.2011, 16:51 10
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Dim iw%, ih%, tp%
Dim pw%, ph%
Dim c%, r%, k%
Private Sub Command1_Click()
c = 0: r = 0: k = 0:  tp = Image1(0).Top
Do While (r + 1) * ih < ph
Do While (c + 1) * iw < pw
c = c + 1
k = k + 1
Load Image1(k)
Image1(k).Left = (c - 1) * iw
Image1(k).Top = tp
Image1(k).Visible = True
Loop
r = r + 1
c = 0
tp = tp + ih
Loop
 
End Sub
 
Private Sub Form_Load()
iw = Image1(0).Width: ih = Image1(0).Height
tp = Image1(0).Top
Image1(0).Picture = Form1.Icon
 Image1(0).Left = -iw
pw = Picture1.Width: ph = Picture1.Height
End Sub
1
6 / 6 / 0
Регистрация: 11.03.2011
Сообщений: 65
11.03.2011, 17:19  [ТС] 11
Отлично. Рисует от начала и до конца. Круто. А как зделать так чтоб первая картинка каждого парного ряда ссовывалась на половину своей ширины.
Спасибо.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.03.2011, 17:28 12
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Dim iw%, ih%, tp%
Dim pw%, ph%
Dim c%, r%, k%, dl%
Private Sub Command1_Click()
c = 0: r = 0: k = 0:  tp = Image1(0).Top: dl = 0
Do While (r + 1) * ih < ph
Do While (c + 1) * iw + dl < pw
c = c + 1
k = k + 1
Load Image1(k)
Image1(k).Left = (c - 1) * iw + dl
Image1(k).Top = tp
Image1(k).Visible = True
Loop
r = r + 1
dl = IIf(r Mod 2 = 0, 0, iw / 2)
c = 0
tp = tp + ih
Loop
 
End Sub
 
Private Sub Form_Load()
iw = Image1(0).Width: ih = Image1(0).Height
tp = Image1(0).Top
Image1(0).Picture = Form1.Icon
 Image1(0).Left = -iw
pw = Picture1.Width: ph = Picture1.Height
End Sub
1
6 / 6 / 0
Регистрация: 11.03.2011
Сообщений: 65
11.03.2011, 17:54  [ТС] 13
Обалдеть. Все есть. Только я заменил + dl на - dl, а то в четных рядах отсутствовало первых пол картинки. Для начала четного ряда это помогло, подскажыте как надо чтоб и для конца того же ряда картинка добавилась.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.03.2011, 18:08 14
да вроде работает, только Image1(0).Top=0 должно быть
0
6 / 6 / 0
Регистрация: 11.03.2011
Сообщений: 65
11.03.2011, 18:19  [ТС] 15
Спасибо уже сделал.
Do While (r + 1) * ih < ph
Do While (c + 1) * iw - dl < pw + iw
0
11.03.2011, 18:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2011, 18:19
Помогаю со студенческими работами здесь

Одновременная загрузка картинок в несколько PictureBox-ов
Добрый день ребята. У меня такой касяк. У меня на одной форме много pictureBox... Я в них загружаю...

Как прикрепить несколько картинок на несколько людей в списке БД
У меня есть готовая БД, Нужно сделать чтобы при выборе строки в DBGrid, выходила картинка в...

Наложение двух картинок в PictureBox
Здравствуйте, как можно сделать следующее: есть две фотки необходимо наложить одну на другую да...

Выводит картинок из БД Acces в picturebox
На форме рис. 1 вывод информации о мероприятиях! Как вывести в picturebox, вложенную картинку в бд...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru