Форум: "Основная";
Текущий архив: 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