физический размер формы и её печать
Добрый день гуру программирования, повелителям кода, а также владельцам бубна.
Вопрос у меня такого характера.
В 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;
Друзья, нид хелп! Что ещё можно попробовать для решения такой задачи?
|