![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день гуру программирования, повелителям кода, а также владельцам бубна.
Вопрос у меня такого характера. В MS Worde, при указании маштаба в 100%, размер виртуального листа принимает размеры физического листа А4 (или другого согласно настройкам) в независимости от монитора. Значит, такая возможность в винде имеется. А задача у меня такая: Пользователь вводит высоту и ширину бланка в миллиметрах, при этом физический размер формы в Delphi должен стать равным указанным данным. (как А4 в Worde). Для решения задачи использовал WIN API функцию GetDeviceCaps В качестве Handle передавал канву формы H:=form1.Canvas.Handle; И использовал такие параметры для функции: hres := GetDeviceCaps(H,HORZRES) ; - вернуло правильное значение vres := GetDeviceCaps(H,VERTRES) ; - вернуло правильное значение hsiz := GetDeviceCaps(H,HORZSIZE) ; {display width in mm} – вернуло неправильное значение vsiz := GetDeviceCaps(H,VERTSIZE) ; {display height in mm} – вернуло неправильное значение Соответственно и пиксель на миллиметр получить точно не удалось x := hres/hsiz; y := vres/vsiz; Друзья, нид хелп! Что ещё можно попробовать для решения такой задачи? |