Масштабирование PictureBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Масштабирование PictureBox

Сообщение KPEATOP » 09.09.2013 (Пн) 13:09

Строю график X-Y на PictureBox. Хочу чтобы при движении мышью по графику в строке состояния отображалось значение Y.
Вроде ничего сложного :
Код: Выделить всё
   X1min = 1
         X1max = 100
    Y1min = 50
    Y1max = 5
   
    Form3.Picture3.Cls
    Form3.Picture3.Scale (X1min, Y1min)-(X1max, Y1max)
    Form3.Picture3.DrawWidth = Hplot1
    Form3.Picture3.Line (X1min, Y1min)-(X1min, Y1max)
    Form3.Picture3.Line (X1min, Y1min)-(X1max, Y1min)
    Form3.Picture3.DrawWidth = Hplot2
    Form3.Picture3.Line (X1max, Y1min)-(X1max, Y1max)
    Form3.Picture3.Line (X1min, Y1max)-(X1max, Y1max)
   
          For i = 1 To 10
             Form3.Picture3.Circle (i * 9, i * 4), Form3.Picture4.ScaleWidth / RCirclDKID, QBColor(ColCirclDKID)
         Next i


И событие мыши:
Код: Выделить всё
Private Sub Picture3_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
         MDIForm1.StatusBar1.Panels(1).Text = "Значение " & Y
End Sub


Что получается: при движении мышью по графику значение отображается, вроде все нормально, НО когда я дохожу мышью до нижней границы графика, должно показывать значение 5, а у меня показывает 5,12....... А когда дохожу до верхней границы графика - все нормально, показывает 50
Почему внизу 5,1.... а не ровно 5 Я идиот! Убейте меня, кто-нибудь!
Вечность пахнет нефтью

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 09.09.2013 (Пн) 13:12

Убери рамку у PictureBox'а.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re:

Сообщение KPEATOP » 09.09.2013 (Пн) 13:18

Qwertiy писал(а):Убери рамку у PictureBox'а.


Я хочу чтоб с рамкой было, чтоб границы графика были видны. А при чем тут рамка? Когда мышь доходит до верхней границы нормально отображается значение 50.
Вечность пахнет нефтью

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re:

Сообщение KPEATOP » 09.09.2013 (Пн) 13:21

Qwertiy писал(а):Убери рамку у PictureBox'а.

Попробовал без рамуи на всякий случай, то же самое. Сверху нормально показывает 50, а снизу 5,112....
Рамка здесь не при чем
Вечность пахнет нефтью

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Масштабирование PictureBox

Сообщение Mikle » 09.09.2013 (Пн) 13:51

Размер контрола - всегда целое число пикселей, а у тебя в каких величинах?

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Масштабирование PictureBox

Сообщение KPEATOP » 09.09.2013 (Пн) 14:04

Mikle писал(а):Размер контрола - всегда целое число пикселей, а у тебя в каких величинах?

Picture3.ScaleMode = 1
Picture3.Width = 10000
Picture3.Height = 6000
Вечность пахнет нефтью

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Масштабирование PictureBox

Сообщение Хакер » 09.09.2013 (Пн) 18:43

KPEATOP писал(а):Picture3.ScaleMode = 1

Забудь про «равно один». Используй константы. Не разводи грязь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Масштабирование PictureBox

Сообщение KPEATOP » 10.09.2013 (Вт) 7:30

вообщем, никто так и не может объяснить почему на нижней границе PictureBox показывает значение 5,11.... , а не ровно 5. Жаль
Вечность пахнет нефтью

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Масштабирование PictureBox

Сообщение KPEATOP » 10.09.2013 (Вт) 7:36

Кстати также получается и со значением X. Минимум 1, максимум 100. На левой границе графика показывает нормально 1, а на правой показывает чуть меньше 99,88....
Вечность пахнет нефтью

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 10.09.2013 (Вт) 8:55

KPEATOP писал(а):вообщем, никто так и не может объяснить почему

Mikle писал(а):Размер контрола - всегда целое число пикселей


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 38

    TopList