powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Полосы прокрутки
24 сообщений из 24, страница 1 из 1
Полосы прокрутки
    #37832157
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите в чем моя ошибка? Необходимо чтобы картинка прокручивалась в Picturebox. выходит не то что надо.


Код: vbnet
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.
30.
Private Sub HScroll1_Change()
Picture1.Left = -HScroll1.Value * 100
End Sub

Private Sub HScroll1_Scroll()
  HScroll1_Change
End Sub

Private Sub Picture1_Click()
VScroll1.Max = (Picture.Height - Picture1.ScaleHeight) / 100
HScroll1.Max = (Picture.Width - Picture1.ScaleWidth) / 100
End Sub

Private Sub VScroll1_Change()
  Picture1.Top = -VScroll1.Value * 100
End Sub

Private Sub VScroll1_Scroll()
  VScroll1_Change
End Sub


Private Sub Открыть_Click()
CommonDialog1.ShowOpen
Set Picture1.Picture = LoadPicture(CommonDialog1.FileName)
End Sub

Private Sub Очистить_Click()
Picture1.Picture = LoadPicture
End Sub
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832236
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klopa-aв чем моя ошибка?
1) Не используется оформление кода, не читала правила форума и FAQ
2) Не выложена сама форма. То есть мы все должны сейчас воссоздать эту форму у себя, чтобы потестировать код
3) Не описано толком, что, собственно, выходит, и что надо чтобы выходило

ЗЫ: Картинка ВНУТРИ пикчербокса прокручиваться не будет. Можно двигать сам пикчербокс, что, собственно, и делает этот код.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832241
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, проблем с кодом не вижу - код двигает картинку во все стороны.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832393
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro да вы правы у меня прокручивается сам Picturebox, а не картинка. Подскажите чем воспользоваться что бы исправить эту проблему. Форму я вложила. Пошла читать правила от и до.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832403
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klopa-aчем воспользоваться что бы исправить эту проблемуЕще раз - ПРОБЛЕМА не изложена. ЧТО ТРЕБУЕТСЯ непонятно. Код выполняет то, что должен выполнять - двигает пикчербокс, а что надо?
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832406
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если надо, чтобы картинка двигалась внутри пикчербокса, нужно просто вложить один пикчербокс в другой.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832455
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЕсли надо, чтобы картинка двигалась внутри пикчербокса, нужно просто вложить один пикчербокс в другой.
Да это мне и нужно. Я сделала как вы посоветовали добавила Picturebox в Picturebox, и все вышло. Вот только он прокручивает только часть картинки. Увеличить не могу, что увидеть всю куртинку. Проект вложила.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832462
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klopa-aПроект вложила.отлично, а форму к нему можно? ))
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832467
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proklopa-aПроект вложила.отлично, а форму к нему можно? ))
Век живи, век учись. Извините.

Private Sub Form_Load()
CommonDialog1.Filter = "Pictures(*.bmp,*.jpg,*.gif )|*.bmp;*.jpg;*.gif "

End Sub

Private Sub HScroll1_Change()
Picture2.Left = -HScroll1.Value * 100
End Sub

Private Sub HScroll1_Scroll()
HScroll1_Change
End Sub

Private Sub Picture1_Click()
VScroll1.Max = (Picture1.Height - Picture2.ScaleHeight) / 100
HScroll1.Max = (Picture1.Width - Picture2.ScaleWidth) / 100
End Sub

Private Sub VScroll1_Change()
Picture2.Top = -VScroll1.Value * 100
End Sub

Private Sub VScroll1_Scroll()
VScroll1_Change
End Sub


Private Sub Выйти_Click()
End
End Sub

Private Sub Открыть_Click()
CommonDialog1.ShowOpen
Set Picture2.Picture = LoadPicture(CommonDialog1.FileName)
End Sub

Private Sub Очистить_Click()
Picture2.Picture = LoadPicture
End Sub
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832471
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не оформила, сейчас исправлю.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832472
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, опять тегами код не оформляем?

Это не форма, это код формы. Нужен файл формы, где все эти линейки прокрутки и т.п. Файлы имеют расширение frm (и frx иногда). Обычно их сохраняют туда же, куда и проект.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832477
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProТак, опять тегами код не оформляем?

Это не форма, это код формы. Нужен файл формы, где все эти линейки прокрутки и т.п. Файлы имеют расширение frm (и frx иногда). Обычно их сохраняют туда же, куда и проект.

Исправлюсь даю слово!
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832478
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не исправилась:
Shocker.ProФайлы имеют расширение frm (и frx иногда)
klopa-aК сообщению приложен файл (Form2.log
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832483
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот теперь все десять раз проверила.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832492
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klopa-aВот теперь все десять раз проверила.опять косяк ))
у тебя форма лежит в более верхней папке, чем сам проект, а в архиве она лежит в той же папке. Ну ладно, хоть есть форма.

Поставь свойство AutoSize внутреннего пикчербокса в True
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37832504
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proklopa-aВот теперь все десять раз проверила.опять косяк ))
у тебя форма лежит в более верхней папке, чем сам проект, а в архиве она лежит в той же папке. Ну ладно, хоть есть форма.

Поставь свойство AutoSize внутреннего пикчербокса в True

Спасибо большое. Ты Человек с большой буквы.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37833604
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Картинка прокручивается нормально, но я не знаю как убрать лишний диапазон. Объясню не много подробнее. После того как картинка загрузилась в Picturebox прокручиваю ее вниз и вправо там лишний диапазон. Как это исправить? Посмотрела в свойствах Picturebox ни чего не нашла.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37833749
Below0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
klopa-a, значение max твоей полосы прокрутки должно зависеть от высоты загружаемой картинки. если будут округления при подсчётах - делай их в большую сторону
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37833753
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там есть еще серьезная проблема, которую белов не заметил. Но у меня сначала вопрос, что хочется. четко разобраться, как это работает, почему глючит и самой сделать правильно? Или получить исправленное, нормально работающее решение?
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37833757
Below0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProТам есть еще серьезная проблема, которую белов не заметил я проект не скачивал и не видел) перевал за максимальное значение, да? и я больше не белов. полтора года программирования убиты одним модераторским логом. вырасту озлобленым, сопьюсь и начну курить...
klopa-a, воть статья из лучшей обучалке vb6 для чайнигоф
ScrollBar.

Если ты обратил внимание, почти любая программа под Windows имеет такие ползунки, позволяющие пользователю перемешаться по данным вверх-вниз или влево-вправо. Есть они и у нас. Называется этот объект ScrollBar. Сам объект получает имя по умолчанию HScroll1, если это вертикальный ползунок, или VScroll1, если - горизонтальный. Свойства и события у обоих одинаковые, поэтому, чтобы не раздувать код, используем один СкроллБар - вертикальный. Я использую в основном его.

Итак, основные рабочие свойства ScrollBar это:

.Value - это главное значение, оно меняется, когда мы двигаем ползунок ScrollBar' а.

.Max - задает максимальное значение, до какого будет менятся значение .Value. Главный недостаток этого объекта в том, что значение .Max, а стало быть и .Value не моджет превышать 32767. Это всегда надо учитывать при работе с этим объектом.

.Min - задает минимальное значение .Value. Здесь тоже ограничения до -32768.

.SmallChange - задает, насколько меняется .Value, если мы кликаем мышью по стрелочкам вверху или внизу объекта ScrollBar

.LargeChange - задает, насколько меняется .Value, если мы кликаем мышью по полю скроллбара, а не по стрелочке. т.е. соответствует, как-бы листанию страниц.

Чтобы реально посмотреть, как работает этот объект, создадим новый проект и положим на форму Text1 и VScroll1. Затем дважды щелкнем мышью по объекту VScroll1. У нас откроется окно кода и создастся процедура VScroll1_Change().

Впишем в нее такую строчку кода: Text1.Text = VScroll1.Value и запустим программу. Как только мы начинаем двигать ползунок, в текстовом поле отражается значение VScroll1.Value от 0 до 32767 (поскольку мы ничего не задали иначе.

Остановим программу и создадим процедуру Form_Load(), выбрав в верхнем левом окне кода значение Form и щелкнув по нему. Впишем в эту процедуру значения свойств, о которых мы только-что говорили. Должно получиться следующее:

Option Explicit

Private Sub Form_Load()
VScroll1.Value = 0
VScroll1.Max = 32767
VScroll1.Min = -32768
VScroll1.LargeChange = 100
VScroll1.SmallChange = 1
End Sub

Private Sub VScroll1_Change()
Text1.Text = VScroll1.Value

End Sub

А чтобы ползунок не мигал так противно, поставим в окне свойств VScroll1 свойство TabStop в значение False. Запустим программу. Значение .Value мы задали 0, а поскольку интервал у нас от 32767 до -32768, то ползунок стоит посредине. При щелканьи мыши по стелочкам вверху и внизу, значение .Value изменяется на 1, а при щелканьи по полю VScroll1 - на 100.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37833823
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProТам есть еще серьезная проблема, которую белов не заметил. Но у меня сначала вопрос, что хочется. четко разобраться, как это работает, почему глючит и самой сделать правильно? Или получить исправленное, нормально работающее решение?

Да, хочу разобраться. Иначе толку то. Ну, если уж по честному хочется узнать подсказку, в какую сторону мне двигаться (вот такая вот я). Не скажешь если при загрузке неизвестны размеры картинки, но хочется чтобы при прокрутке, Picturebox показывал только ее и не чего лишнего, это вообще реально?
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37833831
Below0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
klopa-aв какую сторону мне двигаться (вот такая вот я) покажи

klopa-aесли при загрузке неизвестны размеры картинки так определи их. подсказка - сплошной серый цвет на пикчебоксе - конец картинки

Модератор: Вложение удалено.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37833835
klopa-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Below0klopa-aв какую сторону мне двигаться (вот такая вот я) покажи

klopa-aесли при загрузке неизвестны размеры картинки так определи их. подсказка - сплошной серый цвет на пикчебоксе - конец картинки

Спасибо буду думать. Отпишусь.
...
Рейтинг: 0 / 0
Полосы прокрутки
    #37833889
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Below0так определи их. подсказка - сплошной серый цвет на пикчебоксе - конец картинкиklopa-aСпасибо буду думать. Отпишусь.совершенно необязательно, AutoSize сам определит размер картинкиklopa-aBelow0 Я смотрю от тебя больше слов чем дела.верно подмечено
klopa-aДа, хочу разобраться. Иначе толку то. Ну, если уж по честному хочется узнать подсказку, в какую сторону мне двигатьсяТогда такой вопрос, ты сама написал этот код? Понимаешь ли ты, что делает
Код: vbnet
1.
2.
VScroll1.Max = (Picture.Height - Picture1.ScaleHeight) / 100
HScroll1.Max = (Picture.Width - Picture1.ScaleWidth) / 100

?
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Полосы прокрутки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]