Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.044 c
1-16311
Lisa
2004-01-25 16:44
2004.02.06
TDBNavigator


1-16470
lipskiy
2004-01-28 22:35
2004.02.06
Вопрос по перекрытию события в потомке класса.


14-16600
ёё
2004-01-15 14:10
2004.02.06
Что есть пиринговые сети?


14-16650
Кукушкинд
2004-01-13 14:08
2004.02.06
Друзья! Есть


14-16742
Piter
2004-01-15 19:00
2004.02.06
Насчет NtQuerySystemInformation и йCreateToolhelp32Snapshot





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский