Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Как узнать, сколько экранных точек в сантиметре?   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
1-16434
Oleg_
2004-01-21 18:08
2004.02.06
Русские названия в intallshield


4-16798
x0rz
2003-11-28 22:43
2004.02.06
Обработка сообщений для стандартных классов


14-16696
Egloo
2004-01-16 11:03
2004.02.06
DHTML SDK... ПОМОГИТЕ ПОЖАЛУЙСТА!!!


1-16298
Grinder
2004-01-24 13:43
2004.02.06
Форма как hint


3-16035
hOMO
2004-01-12 17:46
2004.02.06
Структура номера телефона