Форум: "WinAPI";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизКак узнать, сколько экранных точек в сантиметре? Найти похожие ветки
← →
Ptr (2003-11-26 17:50) [0]Уважаемые мастера! Кто знает, как получить на экране отрезок, реальный размер которого 1 сантиметр???
← →
Reindeer Moss Eater (2003-11-26 17:55) [1]DC:=GetDC(0);
ScreenLogPixels:=GetDeviceCaps(DC,LOGPIXELSY);
точек в дюйме
← →
Ptr (2003-11-26 17:58) [2]СПАСИБО !
← →
Ptr (2003-11-26 18:09) [3]Получается, что ScreenLogPixels - не зависит от разрешения экрана, тогда как узнать при каком разрешении это справедливо, чтобы потом пересчитать на установленное разрешение ???
← →
Reindeer Moss Eater (2003-11-26 18:15) [4]Хочу_постоянный_размер_шрифта_на_всех_разрешениях := 10;
Font.Size:= - MUlDiv(Хочу_постоянный_размер_шрифта_на_всех_разрешениях,ScreenLogPixels,72);
← →
Ptr (2003-11-26 18:52) [5]Извините за тупость, но я надеялся получить разний результат на разном разрешении, о результат один и тот же...
procedure TForm1.Button1Click(Sender: TObject);
Var
DC: HDC;
ScreenLogPixels: integer;
begin
DC := GetDC(0);
ScreenLogPixels := GetDeviceCaps(DC,logPixelsX div PixelsPerInch);
ScreenLogPixels := MUlDiv(1,ScreenLogPixels,72);
Label1.Caption := IntToStr(ScreenLogPixels);
end;
← →
Reindeer Moss Eater (2003-11-26 19:00) [6]размер шрифтов измеряется в пунктах.
1 дюйм = 72 пункта.
Сколько пунктов приходится на один дюйм при текущем разрешении мы получили.
Читаем исходный вопрос:
как получить на экране отрезок, реальный размер которого 1 сантиметр???
Сложность с переводом дюймов в сантиметры?
← →
Ptr (2003-11-26 19:18) [7]Если в результате кода
DC := GetDC(0);
ScreenLogPixels := GetDeviceCaps(DC,LOGPIXELSY);
Result := MUlDiv(1,ScreenLogPixels,72);
"Мы получили сколько пунктов приходится на один дюйм при текущем разрешении" то вопрос в том: будет ли меняться конечная величина Result при изменении разрешения?
← →
Reindeer Moss Eater (2003-11-26 19:24) [8]Канечна будет
← →
Ptr (2003-11-26 19:34) [9]Так не меняется вот в чем дело !!!
← →
wicked (2003-11-26 20:27) [10]2 Ptr
так поставь "крупный шрифт" в настройках и погляди...
и в
> begin
> DC := GetDC(0);
> ScreenLogPixels := GetDeviceCaps(DC,logPixelsX div PixelsPerInch);
ReleaseDC(0, DC);
> ScreenLogPixels := MUlDiv(1,ScreenLogPixels,72);
> Label1.Caption := IntToStr(ScreenLogPixels);
> end;
не мешало бы добавить ReleaseDC(0, DC) - dc слишком ценный ресурс, чтоб так его разбазаривать...
← →
Игорь Шевченко (2003-11-26 21:48) [11]Сколько пикселов в сантиметре экрана:
(GetDeviceCaps(DC, HORZSIZE) * 10) div GetDeviceCaps(DC, HORZRES);
← →
Jel (2003-11-27 10:44) [12]
> как получить на экране отрезок, реальный размер которого
> 1 сантиметр
ИМХО - никак. Когда закончите вычисления и вывод на экран покрутите горизонтальный и вертикальный размеры органами управления монитора.
← →
Ptr (2003-11-27 10:50) [13]ЭТО БЫЛО ЗДОРОВО !!!!
С П А С И Б О !!!!!!!!!!!!!!!!!!!!!!!
← →
Anatoly Podgoretsky (2003-11-27 10:51) [14]Постоянной калибровкой монитора, при том именно постоянной, перед каждым использованием.
← →
Diamond Cat (2003-11-27 23:45) [15]Удалено модератором
Примечание: Offtopic
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.062 c