|
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 8
|
|
Пиксели, поинты, твипы и DPI!28.07.2012, 22:01. Показов 9373. Ответов 15
Метки нет (Все метки)
Уважаемые коллеги! Помогите разобраться с пикселями, поинтами, твипами и DPI! Третьи сутки "лопачу" инет, а ясности в этом вопросе как не было, так и нет! Наооборот, только ещё больше запутался! Функцией Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long вытащил GetDeviceCaps(hDC, HORZRES)=1024, a
GetDeviceCaps(hDC, VERTRES)=768! Это размеры дисплея? Но в каких единицах измерения выдаваемые числа?! Пиксели?! Поинты?! Твипы?! DPI?! В каких единицах измерения задаются UserForm1.Top, UserForm1.Left, UserForm1.Height, UserForm1.Width?! Каким образом связаны размер дисплея с UserForm1.Top?! Как все эти понятия (пиксели, поинты, твипы и DPI) связаны друг с другом? А суть такова: рисую форму на домашнем НЕТБУКе (1024х600) внизу экрана, дабы закрыть от пользователя нижнее Window'ое меню с кнопкой пуск и вкладку Excel'я с листами, на рабочем компе (1024х768) форма "всплывает" вверх! Как программно расчитать UserForm1.Top в зависимости от размеров дисплея? Заранее благодарен! Сегодня началась Олимпиада, а я из-за этой проблемы вообще ничего не посмотрел - искал не поднимая головы!
0
|
|
| 28.07.2012, 22:01 | |
|
Ответы с готовыми решениями:
15
Как перевести твипы в пиксели? Bitmap объект при сохранении в файл не сохраняет новое значение DPI - пиксели на дюйм (пиксели окна != пиксели монитора) ? |
|
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 8
|
|
| 29.07.2012, 08:13 [ТС] | |
|
Мне нужно не по центру, а внизу. Это во-первых, а во-вторых, почему Top=2*Top, а не умноженное на 3 или 4?
0
|
|
|
Супер-модератор
|
|
| 29.07.2012, 09:02 | |
Сообщение было отмечено как решение
Решение
Насколько мне известно, все API-функции работают только с пискелами. 1024*768 - это размер экрана в пикселах.
"рисую форму на домашнем НЕТБУКе (1024х600) внизу экрана, дабы закрыть от пользователя нижнее Window'ое меню с кнопкой пуск и вкладку Excel'я с листами" - а зачем это нужно (закрывать от пользователя пусковую панель)? Пользователь может ведь перетянуть ее мышью в правую или левую вертикаль экрана...
3
|
|
|
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 8
|
|
| 29.07.2012, 09:20 [ТС] | |
|
Можно заблокировать перемещение формы пользователем. Внизу будет меню кнопок: "Добавить запись","Редактировать запись","Удалить запись" и "Выход"
Добавлено через 10 минут Может быть выложить программу?
0
|
|
|
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||||||
| 29.07.2012, 15:52 | |||||||||||
Сообщение было отмечено как решение
Решение
5
|
|||||||||||
|
Супер-модератор
|
|
| 29.07.2012, 22:54 | |
Сообщение было отмечено как решение
Решение
Почитайте мою статью Прогресс-бар в статус-баре. Там и о метриках есть...
3
|
|
|
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 8
|
|
| 29.07.2012, 23:46 [ТС] | |
|
Для форумчанина MOBILE: Прошу прощения за мою безграмотность в вопросах API-функций, если Вас не затруднит, Вы не пояснили бы свой ответ: Что куда всталять? (куда раскидать какие функции (какие в модули, какие в UserForm и т.д.). Чувствую, что истина кроется в Вашем ответе! Заранее благодарен. С Уважением, Carpenter.
0
|
|
|
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 8
|
||||||
| 30.07.2012, 23:35 [ТС] | ||||||
|
С Уважением, Carpenter.
________________________________________ _________
0
|
||||||
|
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 31.07.2012, 00:00 | |
|
carpenter, я не очень понял ваши вопросы. Даю пример - файл екселя. При открытии в нем сообщаются ширина, высота и рассточние от верхнего края в твипах и пикселах. Если окно екселя смещать вверх/вниз, то высвечиваемые параметры окна будут меняться. "Последовательным приближением" получите нужное положение
1
|
|
|
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 8
|
|
| 31.07.2012, 00:19 [ТС] | |
|
Mobile, честно говоря, я когда-то был программёром. Писал на досовском Fox'e. Вроде бы, даже неплохо. Но это уже позапрошлый век!!! Вот решил САМ попробовать свои силы на VBA. А поскольку я только в начале этого пути, я иду наощупь, как слепой Пью! И вопросы мои, наверняка, "корявые" и набиваю шишки. Я сам с трудом представляю как всё должно выглядеть, оттуда все мои "шараханья из стороны в сторону"! В любом случае, СПАСИБО!!! Приятно, когда тебя не бросают на произвол судьбы! Завтра обязатель гляну Ваш пример. Ещё раз Спасибо!
0
|
|
|
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 31.07.2012, 01:21 | |
|
Ошибка вкралась в пример. Поправил и немного изменил интефейс
0
|
|
|
0 / 0 / 0
Регистрация: 26.06.2012
Сообщений: 8
|
|
| 31.07.2012, 10:16 [ТС] | |
|
Спасибо! Теперь всё стало понятно! Сейчас буду применять Вашу методу! Что "налопачу" - покажу (если, конечно, таким "зубрам" в VBA, каким наверняка Вы являетесь, будет интересно). Интернет, всё-таки, великая вещь: можно пообщаться с умными людьми невыходя из дома!
0
|
|
| 31.07.2012, 10:16 | |
|
Помогаю со студенческими работами здесь
16
Параметр DPI X7 - DPI ( Mouse) Поворот с dpi DPI в эмуляторе
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|