Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Проблемы с размером шрифтов.   Найти похожие ветки 

 
YurikGl ©   (2004-03-11 17:42) [0]

Уважаемые мастера.
У меня к Вам небольшой вопрос. В "Свойства экрана/параметры/дополнительно" можно изменить масштаб шрифта. "Обычный размер 96dpi" или "Крупный размер 120dpi". Сам я пишу с установкой "Обычный размер 96dpi". На компьютере, где установлено "Крупный размер 120dpi" естественно все надписи поплыли. Кто как решает эту проблему?


 
Тимохов ©   (2004-03-11 17:47) [1]

Удалено модератором


 
YurikGl ©   (2004-03-11 17:48) [2]

Возможно-ли как-то "зафиксировать" шрифт?


 
WebErr ©   (2004-03-11 17:49) [3]

Удалено модератором


 
ssk   (2004-03-11 17:51) [4]

может попробовать Form.Scaled:=False; ?


 
Игорь Шевченко ©   (2004-03-11 18:04) [5]

Тимохов ©   (11.03.04 17:47)

И программа отправляется в Recycle Bin, где ей самое и место после подобных заявлений.

---
LMD


 
YurikGl ©   (2004-03-11 18:05) [6]

Удалено модератором


 
Игорь Шевченко ©   (2004-03-11 18:08) [7]

YurikGl ©   (11.03.04 18:05)

На сайте globus vcl был способ решения данной проблемы, с использованием TrueType шрифтов.


 
ssk   (2004-03-11 18:11) [8]

Вот у себя в факах нашел. Где взял, не помню. Попробуй.


Пропорциональные шрифты независимо от режима экрана

Примечание: в инспекторе объектов предварительно нужно поставить Scaled = False для тех Tform, в которых будет осуществляться масштабирование шрифтов.

type
 TFooClass = class(TControl);

procedure geAutoScale(MForm: TForm);
const
cScreenWidth :integer = 800;
cScreenHeight:integer = 600;
cPixelsPerInch:integer= 96;
cFontHeight:integer   = -11;  {В режиме проектирование значение из Font.Height}
var
i: integer;
begin
if (Screen.width > cScreenWidth)or(Screen.PixelsPerInch <> cPixelsPerInch) then
begin
 MForm.scaled := TRUE;
 MForm.height := MForm.height * screen.Height DIV cScreenHeight;
 MForm.width  := MForm.width  * screen.width DIV cScreenWidth;
 MForm.ScaleBy(screen.width, cScreenWidth);
end;
if (Screen.PixelsPerInch <> cPixelsPerInch) then
begin
 for i := MForm.ControlCount - 1 downto 0 do
  TFooClass(MForm.Controls[i]).Font.Height:=(MForm.Font.Height div cFontHeight)*TFooClass(MForm.Controls[i]).Font.Height;
end;
end;


 
Тимохов ©   (2004-03-11 18:32) [9]


>
> Игорь Шевченко ©   (11.03.04 18:04) [5]

просто надо писать программы, которые очень нужны, тогда они не будут в ресекле бине.

И вообще, это была ошибочная весвь мс. Некторые диалоги мс, также глючат при больших шрифтах. Указывать на них сейчас не хочу - надо перегружаться, чтобы перейти в большие шрифты. Но эти места есть.


 
Игорь Шевченко ©   (2004-03-11 18:39) [10]


> просто надо писать программы, которые очень нужны


Просто надо помнить, что программы пишутся для пользователей, а не пользователи существуют для программ.


> И вообще, это была ошибочная весвь мс


Аргументы ?

---
LMD


 
Тимохов ©   (2004-03-11 18:41) [11]


> Аргументы ?

Многие разработчики (в том числе и частично мс) забили на поддержку этого режима.


 
Игорь Шевченко ©   (2004-03-11 18:49) [12]

Тимохов ©   (11.03.04 18:41)


> Многие разработчики (в том числе и частично мс) забили на
> поддержку этого режима


АРГУМЕНТЫ?!

Не твое имхо, а ссылочки...


 
Тимохов ©   (2004-03-11 19:19) [13]


> Игорь Шевченко ©   (11.03.04 18:49) [12]

Под "забили" я имел в виду следующее - просто игнорируют этот параметр. В частности, у меня за таким делом замечен Norton Antivirus - шрифты как были маленькие, так и остались. Также мелкие шрифты замечены в заставках офисных программ.

И вообще - в 1 я пошутил. Сам я, конечно, поддерживаю работу в разных размерах шрифтов :))))), благо за меня это успешно делает дельфи.

Замечу, что при > 120dpi (т.е. крупнее, чем крупный шрифт) плохо начинают работать и офисные программы - в диалогах иногда словечки наезжают немного друг на друга.

А вообще - предлагаю на эту тему забить, как на бесперспективную.

Также готов признать свою ошибку: фразу
"Многие разработчики (в том числе и частично мс) забили на поддержку этого режима" заменаю на , "случается так, что при больших шрифтах видны редкие глюки в экранных формах корректно работающих в маленьких шрифтах".

Когда будет больше времени, обещаю представить солидные аргументы в доказательство последней фразы в кавычках.


 
YuRock ©   (2004-03-11 19:46) [14]

> Тимохов
> И вообще, это была ошибочная весвь мс

Это одна из редких очень хороших и полезных "весвьей" "мс"

Дома у меня раньше был 14" монитор. Я делал 1024/768 + крупный шрифт - и отлично! Размеры - как в 800/600, а качество изображения улучшается на 40%!

И программы пишу на крупном шрифте, и не только на Delphi (дело не в Delphi, Windows надо уметь пользоваться)


 
Тимохов ©   (2004-03-11 20:01) [15]

Повторю

Когда будет больше времени, обещаю представить солидные
аргументы в доказательство фразы: случается так, что при больших шрифтах видны редкие глюки в экранных формах корректно работающих в маленьких шрифтах.


 
YuRock ©   (2004-03-11 20:35) [16]

> Тимохов ©   (11.03.04 20:01) [15]

Это не глюки, а результат ракализма программистов, их делавших.


 
Тимохов ©   (2004-03-12 12:54) [17]


> YuRock ©   (11.03.04 20:35) [16]

В том числе и авторов, т.е. программеров мс.
Дабы не провоцировать на перенос в Потр-ся скажу лишь, что в выходные не пожалею время и найду места в офисе (они там есть), где проявляются глюки.


 
Игорь Шевченко ©   (2004-03-12 13:08) [18]

Тимохов ©   (12.03.04 12:54)


> В том числе и авторов, т.е. программеров мс.


> в выходные не пожалею время и найду места в офисе (они там
> есть)


А кто без греха ?
Ошибаться свойственно всем, в том числе и программистам MS.
Но делать далеко идущие выводы из ошибок все-таки не следует, так как это уже несколько иначе называется.


 
Тимохов ©   (2004-03-12 13:10) [19]

да не делаю я.
как вы сказали "твое имхо". да, наверное, это сугубо мое имхо.
виноват, буду стараться деражать его при себе.


 
PVOzerski ©   (2004-03-12 14:29) [20]

>Под "забили" я имел в виду следующее - просто игнорируют этот
>параметр. В частности, у меня за таким делом замечен Norton
>Antivirus - шрифты как были маленькие, так и остались. Также
>мелкие шрифты замечены в заставках офисных программ.

Сдается мне, изложенное означает не "забили" а с точностью до наоборот: программы это учитывают и корректируют выводимый ими шрифт. Что требуется, видимо, и автору ветки.


 
Amoeba ©   (2004-03-12 14:38) [21]

Даю конкретную ссылку:
http://cpr.biblio-globus.ru/small_font_defence.htm


 
Тимохов ©   (2004-03-12 14:40) [22]


> Что требуется, видимо, и автору ветки.

Наверное, вы правы.

Вообще говоря здесь же два решения:
1. Забить на желание пользователя иметь большие шрифты и выводить все равно в тех, которых хочется (например, как на этом сайте - у меня игнорируется значение из меню Вид/Размер шрифта). Если мне надо это сделать, то я этого всегда добивался тем, что утанавливал в runtime font.height, а не font.size. Возможно я недостаточно образован и этого можно добиться другими способами, но мне этого было достаточно, т.к. я в дизайн тайме ничего не создаю - только в рантайме. Игнорирование желания пользователя имхо приемлемо, когда форма очень навернута, т.е. увеличиваться некуда.

2. Учеть желание пользователя. Здесь вроде вообще все просто - дельфи о нас позаботился. Рисуется форма, scaled = true и все - все само раздвинется и увеличится. Замечу, что важно, копоненты не располагать вплотную с точностью до точки - надо оставлять пару точек. Если это не делать (т.е. все ставить вплотную), что бывает, что при пропорциональном увеличении строчки налезают друг на друга. Я так понимаю, что это из-за округления при умножении на коэффициент.

Прошу прощения, если сказал, что-то не то - в дизайн тайме давно не работал. Написал же это для того, чтобы обелить себя в глазах Игоря Шевченко :)))


 
KSergey ©   (2004-03-12 14:50) [23]

>  [21] Amoeba ©   (12.03.04 14:38)

Надо отметить, что это единственная полная статья, которая предлагает решение данной проблемы.
Частичная корявость в том, что используются ТТ шрифты, которые не совсем "хорошо" отображаются на экране.

Люди!
Вот постоянно на такие вопросы ответ один: надо делать правильно!
Да, спору нет.
Но лично мне еще ни разу не попался предметный ответ на копрос "а как именно это делать правильно"?
А есть ли соотв. руководство от MS, где бы эта методика описывалась? Что-то никогда мне не попадалось...

А может таки найдется смелый, кто нормально распишет как? Или как всегда "нова хава"?

PS
Вообще-то, есть множество "волшебных" компонент, авторы которых обещают что все сделают за тебя.
Я правда их ни разу не использовал, но может кто-то может поделиться опытом?

>  [14] YuRock ©   (11.03.04 19:46)
> И программы пишу на крупном шрифте, и не только на Delphi
> (дело не в Delphi, Windows надо уметь пользоваться)

А нельзя ли поподробнее? На крупном - а потом что? А на мелком как это выглядит? А на "крупнее крупного"? Ну пробовать мне лень ;) Уж договоите, раз начали...


 
Игорь Шевченко ©   (2004-03-12 15:05) [24]


> А есть ли соотв. руководство от MS, где бы эта методика
> описывалась?


Есть, в MSDN, насколько мне помнится. Когда-то у них был раздел о дизайне пользовательского интерфейса, но ссылка двухлетней давности, к сожалению, потеряла актуальность, а искать снова, честно говоря, лень.


> А может таки найдется смелый, кто нормально распишет как?


А вроде в fido7.ru.delphi в разделе FAQ было написано ? Я, опять же, давно не смотрел, но можно поискать в нете, этот FAQ во многих местах продублирован, может, даже на сайте Подгорецкого.


 
KSergey ©   (2004-03-12 15:28) [25]

>  [24] Игорь Шевченко ©   (12.03.04 15:05)
> Есть, в MSDN, насколько мне помнится. Когда-то у них был
> раздел о дизайне пользовательского интерфейса

Да вот помнится там говорилось лишь о юзабилити, о том как это должно выглядеть, но не о том как это сделать. Или я заблуждаюсь?

> А вроде в fido7.ru.delphi в разделе FAQ было написано ?

Ага, есть ;) "Используйте TT шрифты или Scaled:=что-то там"
Короче, тоже, что звучало здесь.
Но ведь MS в своих продуктах это как-то явно иначе делает! (не в буквальном смысле используемых свойств, а технически другими методами)
Опять говорю лишь только по тем сведениям, которые у меня остались в памяти, но врятли в FAQ по дельфям было другое - мне бы запомнилось...


 
Игорь Шевченко ©   (2004-03-12 15:53) [26]


> Но ведь MS в своих продуктах это как-то явно иначе делает!
>


Делает иначе, вызовом MulDiv и GetDeviceCaps(..., LOGPIXELSY{X}) :)


 
YurikGl ©   (2004-03-13 09:19) [27]

re [21]
Спасибо за ссылку. Буду разбираться.


 
Vemer ©   (2004-03-13 13:00) [28]

To Тимохов >
Вариант 3 - когда продукт пишеться под конкретного заказчика проще сначала выяснить использует ли он "увеличенный" режим и собираеться ли использовать. В большинстве случаев оба ответа "нет"..


 
YurikGl ©   (2004-03-13 14:34) [29]

re [28]
Только у конкретного заказчика 50 компов и столько-же юзеров. Не будешь же каждый проверять.
З.Ы. Просто у третьего юзера, у которого я это проверял было 120dpi


 
Vemer ©   (2004-03-13 21:09) [30]

re(29)
Там написано - вариант..
У моих пока 4 компа макс. :).


 
Тимохов ©   (2004-03-14 12:04) [31]


> Vemer ©   (13.03.04 13:00) [28]

У наших заказчиков компов 200 или больше, но их администрирование (вершее помошь в администрировании) проводится отделом нашей же фирмы. Так, что и спрашивать ничего не надо :))
Пока все довольны. Диалоги у нас реагируют на крупный шрифт, а формы данных - нет (большие они очень :(((). Пока все довольны.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.035 c
7-1072072538
Ilkhom
2003-12-22 08:55
2004.04.04
Лицинзионные программы


4-1075112263
АСМиД
2004-01-26 13:17
2004.04.04
Как получить перечень выполняющихся приложений?


14-1079011996
Х
2004-03-11 16:33
2004.04.04
ORACLE - вожм-но ли восстновление данных?


1-1079688540
Лана Розанова
2004-03-19 12:29
2004.04.04
Имитация TAB


1-1079196446
Вопрошающий
2004-03-13 19:47
2004.04.04
Type Library Editor





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