Перевод координат

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

Перевод координат

Сообщение Sirik » 26.04.2004 (Пн) 9:50

Как перевести координаты мышки в, компоненте, Image в милиметры?
Помоему "там" координаты заданы в твипах? Тогда как перевести в мм?
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.04.2004 (Пн) 9:54

image1.parent.scalex(x,image1.parent.scalemode, vbmillimeters)
image1.parent.scaley(y,image1.parent.scalemode, vbmillimeters)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 26.04.2004 (Пн) 10:48

GSerg писал(а):image1.parent.scalex(x,image1.parent.scalemode, vbmillimeters)
image1.parent.scaley(y,image1.parent.scalemode, vbmillimeters)

Что-то у меня эти выражения компил красным выделил, небось ошибка :?:
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.04.2004 (Пн) 10:51

MsgBox Image1.Parent.ScaleX(X, Image1.Parent.ScaleMode, vbMillimeters)

прекрасно работает.
Ошибка в том, что ты работал мышкой (copy-paste), а не головой, и компилятор тебе сказал, что нужен оператор равенства после закрывающейся скобки, поскольку ему непонятно, для чего тебе это выражение, если ты с ним ничего не делаешь.
Lasciate ogni speranza, voi ch'entrate.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 26.04.2004 (Пн) 10:57

За всё спасибо.
Вот только ещё один вопросик: мне надо чтобы Х был в пределах -200 до +500, а Y -100 до +100
Как мне это реализовать в элементе Image?

P.S. В Picture я использовал метод Scale, но в Image я такого не нашёл
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.04.2004 (Пн) 11:07

В Image его и не будет, пользуйся контейнером. А чтобы получить нужный контейнер, можно сделать так:
Код: Выделить всё
Function XToMillimeters(ImageControl As Image, ByVal XValue As Single) As Single
If ImageControl.Container Is Nothing Then
  ToMillimeters = ImageControl.Parent.ScaleX(XValue, ImageControl.Parent.ScaleMode, vbMillimeters)
Else
  If TypeOf ImageControl.Container Is PictureBox Then
    ToMillimeters = ImageControl.Container.ScaleX(XValue, ImageControl.Container.ScaleMode, vbMillimeters)
  Else
    ToMillimeters = ImageControl.Parent.ScaleX(XValue, vbTwips, vbMillimeters)
  End If
End If
End Function
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 26.04.2004 (Пн) 11:15

Э... либо я не догоняю, либо одно из двух, но не проще ли сразу использовать PictureBox вместо Image? Он вообще-то тоже картинки показывать умеет...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.04.2004 (Пн) 11:20

Он много ресурсов кушает, он фокус получает, а иногда это нежелательно (правда это лечится Enabled=False).
Lasciate ogni speranza, voi ch'entrate.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 26.04.2004 (Пн) 12:54

Ennor писал(а):Э... либо я не догоняю, либо одно из двух, но не проще ли сразу использовать PictureBox вместо Image? Он вообще-то тоже картинки показывать умеет...

Объясняю: у меня картинка оригинал имеет размер листа A4. Мне надо получить уменьшенную копию данного листа (чтобы можно было видеть его на экране весь сразу), поэтому я загружаю рисунок сначала в Picture, потом пересылаю в Image (здесь есть свойство Stretch). Вот и всё.
Но проблемма всё-таки остаётся: как на Image задать область (-200,500)-(-100,100)???
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.04.2004 (Пн) 14:37

Мдя...
Image конечно кушает ресурсов больше, но раз ты все-равно используешь PictureBox, то почему бы тебе и картинку не выводить на него? Кроме того, пусть даже и Image у тебя небольшой, но памяти он будет занимать до фига, если ты в него загружаешь лист формата A4.

Используй Picture1.PaintPicture.
Lasciate ogni speranza, voi ch'entrate.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 26.04.2004 (Пн) 14:40

alibek писал(а):Мдя...
Image конечно кушает ресурсов больше, но раз ты все-равно используешь PictureBox, то почему бы тебе и картинку не выводить на него? Кроме того, пусть даже и Image у тебя небольшой, но памяти он будет занимать до фига, если ты в него загружаешь лист формата A4.

Используй Picture1.PaintPicture.

Мне, в принципе, "по барабану" сколько он будет занимать памяти.

Мне надо, как-то реализовать метод SCALE в Image и всё. Но как я не знаю...
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.04.2004 (Пн) 14:44

Тебе по барабану, системе нет.
Дубль два - пользуйся PaintPicture.
Lasciate ogni speranza, voi ch'entrate.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 26.04.2004 (Пн) 14:51

alibek писал(а):Тебе по барабану, системе нет.
Дубль два - пользуйся PaintPicture.

Сори, я не просёк PaintPicture :oops:
Попробовал, всё отлично получилось. Всем спасибо
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25

    TopList  
cron