|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Форма с рисованным изображением не помещается на экране с большим разрешением
Добрый день!
В моей программе применяется форма с размерами 1280х335 пикселей. На мониторе с разрешением экрана 1280х1024 выглядит нормально, занимает всю ширину экрана. На мониторе с разрешением экрана 1920х1080 выглядит нормально, занимает положенные 66% ширины экрана. А вот на планшете Teclast X98 3G с Windows 8.1 (ссылка) с диагональю 9,8" с разрешением экрана 2048х1536 и плотностью пикселей 320 dpi не помещается, обрезается правая часть. Разрешение экрана на планшете менял, плотность пикселей в параметрах формы менял, устанавливал 96, 200 и 320 dpi, результат прежний - размеры и положение стандартных контролов изменяются, а размеры формы и рисуемого программой изображения на канвасе формы - нет. Создается впечатление, что реальное разрешение экрана планшета (по ширине) 1024, в 2 раза меньше заявленного. Но Antutu benchmark выдает те же 2048х1536. В чем может быть проблема? Поиск использовал, подходящей темы не обнаружил. Последний раз редактировалось Admin, 22.05.2016 в 21:26. |
#2
|
|||
|
|||
FM?
Возможно не правильно определяется размер экрана устройства. Попробуй для начала вывести что-нить типа: Код:
ShowMessage(Format('%dx%d',[screen.width,screen.height])); |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
psiv (22.05.2016)
|
#3
|
|||
|
|||
Спасибо, выводится 1024х768, значит режется "правильно". Но почему!?
Сайт myresolutionis.ru выводит тоже непонятное... resolut.jpg В чем причина? Как побороть? Не хочется перерисовывать под меньшую ширину... Да, и что означает "FM?" в этом контексте? |
#4
|
||||
|
||||
А альтернативные методы тоже не помогают?
Код:
var dc: HDC; begin Edit1.Text:=IntToStr(Screen.Width); Edit2.Text:=IntToStr(Screen.Height); // Edit3.Text:=IntToStr(GetSystemMetrics(SM_CXVIRTUALSCREEN)); Edit4.Text:=IntToStr(GetSystemMetrics(SM_CYVIRTUALSCREEN)); // Edit5.Text:=IntToStr(GetSystemMetrics(SM_CXFULLSCREEN)); Edit6.Text:=IntToStr(GetSystemMetrics(SM_CYFULLSCREEN)); // dc:=GetDC(0); Edit7.Text:=IntToStr(GetDeviceCaps(dc, HORZRES)); Edit8.Text:=IntToStr(GetDeviceCaps(dc, VERTRES)); ReleaseDC(0, dc); end; Пишу программы за еду. __________________ |
#5
|
|||
|
|||
Практически тоже самое...
Resolution.jpg NumLock, прокомментируйте, пожалуйста, результат. Возможно ли вывести мою форму с размерами 1280х335 на этот планшет полностью? Если да, то как это сделать? |
#6
|
||||
|
||||
Забавно. Решил проверить на своем китайском планшете Chuwi Vi8, у которого разрешение 1280*800. Программа выдала 1024*640 Кстати 1280 это и есть 125% от 1024, размер текста который и установлен в настройках экрана. Если же в настройках выбрать размер текста, приложений и друих элементов 100%, как это обычно сделано на декстопах, то все функции возвращают правильное значение. Хорошо хоть при повороте планшета ширина и высота меняются местами
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
psiv (23.05.2016)
|
#7
|
|||
|
|||
Спасибо за подсказку. В Windows 8.1 две раздельные регулировки - размер всех элементов и размер текста некоторых элементов. Поигравшись ими и найдя переключение дополнительных значений разрешения экрана, получил решение своей проблемы.
|