Главная страница
    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.062 c
3-16187
korvin
2004-01-13 18:13
2004.02.06
В последней ли я записи ??


1-16376
Сергей В.
2004-01-22 20:47
2004.02.06
Передача длинных строк PChar в dll.


1-16397
Yegorchic
2004-01-22 20:16
2004.02.06
MDIForm ы


1-16255
lkl
2004-01-24 13:22
2004.02.06
Как отобразить копирование файлв с помошью Animate и ProgresBar


4-16804
DDA2
2003-11-28 18:28
2004.02.06
Handle для папки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский