Величины измерения

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
extHack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 94
Зарегистрирован: 04.06.2005 (Сб) 12:31
Откуда: 127.0.0.1

Величины измерения

Сообщение extHack » 16.06.2005 (Чт) 13:21

Помогите плиз, в каких величинах измеряется Width и Height формы? Мне надо в пикселях. И как конвертировать ети величины.
n/a

JohnCR
Обычный пользователь
Обычный пользователь
 
Сообщения: 75
Зарегистрирован: 14.06.2005 (Вт) 19:03

Сообщение JohnCR » 16.06.2005 (Чт) 14:04

Код: Выделить всё
Me.ScaleMode = vbPixels

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

Сообщение GSerg » 16.06.2005 (Чт) 17:20

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

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

Сообщение Konst_One » 16.06.2005 (Чт) 17:26

а конвертить можно так:

Код: Выделить всё
WidthPixel =Me.Width/screen.TwipsPerPixelX
HeightPixel=Me.Height/screen.TwipsPerPixelY

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 16.06.2005 (Чт) 17:27

За малым изменением:
WidthPixel=Width\Screen.TwipPerPixelX
Ширина в пикселях всегда целая величниа.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

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

Сообщение Konst_One » 16.06.2005 (Чт) 17:38

ANDLL
ну да, целые конечно

HiMik2003
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 21.07.2003 (Пн) 11:32
Откуда: Кишинёв

Сообщение HiMik2003 » 16.06.2005 (Чт) 18:10

а смотря чо делаешь.
Например, если позиционируешь контролы на форме -
используй свойства формы ScaleHeight, ScaleWidth!!!
Ну и конечно лучше в твипах работать. :wink:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 16.06.2005 (Чт) 18:30

Чем это лучше?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 16.06.2005 (Чт) 18:33

Действительно, чем Twip лучше чем что-то другое?
Для Windows роднее Pixel, меньше чем Pixel точку не нарисуешь...
Весь мир матрица, а мы в нем потоки байтов!

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

Сообщение tyomitch » 16.06.2005 (Чт) 20:58

!Viper! писал(а):Действительно, чем Twip лучше чем что-то другое?
Для Windows роднее Pixel, меньше чем Pixel точку не нарисуешь...

Удобно текст выводить. 20 твипов - один пункт.
Вот и всё, больше никаких удобств нет :-|

Ещё, чтобы не делить самим - зацените методы ScaleX и ScaleY. С ними проще.
Изображение

extHack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 94
Зарегистрирован: 04.06.2005 (Сб) 12:31
Откуда: 127.0.0.1

Сообщение extHack » 17.06.2005 (Пт) 7:33

Да shell делаю я, разрешение экрана я вычислил, допустим 800x600, а это надо придать форме. Я нашел решение,

800 x 15 = 12000
600 x 15 = 9000

12000 - width формы, 9000 height формы
n/a

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 17.06.2005 (Пт) 8:20

extHack писал(а):Да shell делаю я, разрешение экрана я вычислил, допустим 800x600, а это надо придать форме. Я нашел решение,
800 x 15 = 12000


А не проще будет:

Код: Выделить всё
MYForm.Width = Screen.Width


:?:
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 17.06.2005 (Пт) 8:31

Кстати, extHack, учти, что TwipPerPixelX это не констнанта. Она зависит от настроек компьютера.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 17.06.2005 (Пт) 8:37

extHack писал(а):Да shell делаю я, разрешение экрана я вычислил


Кстати, как ты его вычислял, если это просто Screen.Width?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 17.06.2005 (Пт) 9:50

Кстати, extHack, написать нормальную оболочку на VB не получится, т.к. она должна быть многопоточной, а в VB это практически невозможно...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 17.06.2005 (Пт) 9:58

ANDLL писал

Кстати, extHack, учти, что TwipPerPixelX это не констнанта. Она зависит от настроек компьютера.

Ведь дурь можно и не курить А культурно вот так:
Код: Выделить всё
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Public Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public Const SM_CYSCREEN = 1
Public Const SM_CXSCREEN = 0

Private Sub Form_Load()
        SetWindowPos Me.hwnd, 0, 0, 0, GetSystemMetrics(SM_CXSCREEN), _
           GetSystemMetrics(SM_CYSCREEN), 0
End Sub

Public потому что в модуле было :D :D :D :D :D
Если всё делать своими ручками, они скоро отвалятся !


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

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

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

    TopList