Твипы в Пиксели

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

Твипы в Пиксели

Сообщение Easy Coder » 10.03.2004 (Ср) 15:23

Нужно:
1. Динамически создать N-ное количество контролов на форме,
2. Зная общую высоту контролов, рассчитать высоту формы,
3. Установить нужное значение высоты для формы.

С п.п. 1 - 3 проблем не возникает, но вот в 3-ем высоту формы нужно задавать в твипах, в то время как во 2-ом пункте все расчеты ведутся в пикселях. Следует отметить, что между твипами и пикселями существует какое-то непостоянное соотношение... Подкиньте, кто знает, выражение для перевода одного в другое, или, может быть, есть функция какая-нить для этого?

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

Сообщение alibek » 10.03.2004 (Ср) 15:49

H = Screen.TwipsPerPixelY * (Text1.Height + ...)
DH = Me.Height - Me.ScaleHeight * Screen.TwipsPerPixelY
Me.Height = DH + H
Lasciate ogni speranza, voi ch'entrate.

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 13.03.2004 (Сб) 17:25

на сколько помню, один пиксел = 15 твипам (ну или наоборот :)

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

Сообщение Mikle » 13.03.2004 (Сб) 17:31

на сколько помню, один пиксел = 15 твипам

не всегда, зависит от режимов экрана и установки "размер системных шрифтов". Так что лучше делать так, как пишет alibek.

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Re: Твипы в Пиксели

Сообщение Vi » 17.03.2004 (Ср) 15:27

Easy Coder писал(а):... Следует отметить, что между твипами и пикселями существует какое-то непостоянное соотношение... Подкиньте, кто знает, выражение для перевода одного в другое, или, может быть, есть функция какая-нить для этого?

1 дюйм = 72 точки = 1440 твипов = dpi пикселей ' если по-русски
1 inch = 72 points = 1440 twips = dpi pixels
А функции уже привели - это или Screen.TwipsPerPixelX, или Screen.TwipsPerPixelY, хотя есть и специальные функции перевода у графических контейнеров типа Form, PictureBox и т.п. Эти функции называются ScaleX и ScaleY. Например
Код: Выделить всё
  Debug.Print Me.ScaleX(NNN, vbTwips, vbPixels)
  Debug.Print Me.ScaleX(NNN, vbPixels, vbTwips)
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН


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

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

Сейчас этот форум просматривают: Mail.ru [бот] и гости: 1

    TopList