Метод Scale... что-то я не вкуриваю...

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

Метод Scale... что-то я не вкуриваю...

Сообщение tranzit1973 » 07.06.2005 (Вт) 16:05

Братцы! Помогите, замучила одна проблема!

Picture1.Scale(x1,y1)-(x2,y2)

Какой диапазон должен быть у аргументов x1,x2,y1,y2 ?
При изменении размера объекта Picture Box на форме, эта строка вызывает ошибку в программе.
Т.е. если размер объекта небольшой - то ошибка, если увеличить, то ошибки нет.
Аргумент y1 у меня может быть очень большим (но меньше Single).

Сформулирую по-другому:
Влияет ли физический размер Picture Box на максимально возможные значения аргумента Scale?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.06.2005 (Вт) 16:28

это шкала координат для рисования в твоем picturebox-е всяких линий и тп

tranzit1973
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 07.06.2005 (Вт) 16:00

Сообщение tranzit1973 » 07.06.2005 (Вт) 16:47

Что это шкала - это я знаю.

Но почему кусок кода

maxfx = 6000000000#
Picture1.ScaleMode = 0
Picture1.Scale (0, maxfx)-(100, 0)

при небольших размерах Picture Box выдает ошибку?

[/b]

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.06.2005 (Вт) 16:53

Код: Выделить всё
dim maxfx as Single

обязательно

tranzit1973
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 07.06.2005 (Вт) 16:00

Сообщение tranzit1973 » 07.06.2005 (Вт) 17:09

Все переменные у меня определены.

А у Вас это работает?

Может Basic у меня глючит? :shock:

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 07.06.2005 (Вт) 21:22

Konst_One писал(а):
Код: Выделить всё
dim maxfx as Single

обязательно


а отсюда следует что

Код: Выделить всё
maxfx = 6000000000#


никак не может быть =)
ХЎ

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.06.2005 (Чт) 0:05

Ещё как может. Запусти и убедись, что 6000000000# в maxfx As Single прекрасно присваивается.
Изображение

tranzit1973
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 07.06.2005 (Вт) 16:00

Сообщение tranzit1973 » 09.06.2005 (Чт) 10:54

Братцы!
Попробуйте создать форму с одной кнопкой и Picture Box-ом (ScaleMode = 0)
Размер Picture Box сделайте (ну, примерно 3х3 см)

Введите код:

Option Explicit
Dim maxfx As Single

Private Sub Command1_Click()
maxfx = 6000000000
Picture1.Scale (0, maxfx)-(100, 0)
End Sub

В итоге: Run Time Error 5.....

А теперь попробуйте растяните мышкой Picture Box вниз сантиметров на 15, и запустите прогу.
Вуаля! Все работает.

В чем прикол?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.06.2005 (Чт) 11:26

Такое впечатление, что нельзя делать один пиксел больше, чем 1E+7 единиц :roll:
Изображение

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 09.06.2005 (Чт) 11:53

очередной скрытый баг или фича :?:


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 126

    TopList