Обрезанная форма, правильная при любом разрешении

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Обрезанная форма, правильная при любом разрешении

Сообщение A.A.Z. » 25.05.2004 (Вт) 17:38

У меня есть координаты, по которым я обрезаю форму. Но если разрешение экрана меньше, форма вылазит за его пределы. Как этого избежать? Пытался высчитать новые координаты методом "<Мое разр. по верт.>*<Координата Y>/(Тек. разр. по верт.>/<Screen.TwipsPerPixelY>)", то же самое с X, но ничего не получается :( Может, имеет смысл сделать картинку-метафайл с рисунком нужной мне формы, затем сжимать ее до нужных размеров и обрезать по контуру уже в рантайме?

Посоветуйте что-нибудь! :o :roll:
Нет меня больше

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

Сообщение GSerg » 26.05.2004 (Ср) 8:41

Координаты может в пикселях хранить?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 26.05.2004 (Ср) 18:18

Конечно в пикселях! В твипах св-ва Screen.Height и .Width.
Нет меня больше

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 26.05.2004 (Ср) 18:41

если я правильно тебя понял, и "<Мое разр. по верт.>" значит твоё текущее разрешение по вертекале в виде константы (например 1024), то тебе просто напросто надо поменять местами эту величину и разрешение по вертекале текущее, а то у тебя получаеться примерно так:

всё расчитано для разрешения 1280*1024, и при вычислении формула выглядит вот так:

1024*50 (это типа координата) / 1024 (текущее разрешение), т.е. в итоге получаем 50

но допустим изменил разрешение на 1024*768, и получилось:

1024 * 50 / 768 - итого: 66.(6)... вот и получили, что вместо того чтобы координаты уменьшались, они наоборот увеличиваються


Совет такой: переставь местами твоё текущее разрешение с разрешением, которое будет во время выполнения...

и ещё совет, лучше такие вещи сначала на бумажке написать, обмозговать...

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 26.05.2004 (Ср) 18:46

Хм-м-м... Да, чего-то я... :roll:
Нет меня больше

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 26.05.2004 (Ср) 18:50

О. все получилось, спасибо! :)
Нет меня больше


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

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

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

    TopList