Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
ВнизВид формы... Найти похожие ветки
← →
cypher (2002-09-24 21:53) [0]... тема уже не раз обсуждалась, но толком никто так и не ответил.
Как _правильно_ готовить форму, чтобы при разных настройках рабочего стола (размер шрифта, стиль, цвет и прочее) она была номральной (не уплывали кнопки, надписи были в порядке и пр.).
Желательно полноценный пример.
← →
zam2000 (2002-09-24 22:23) [1]в каждом компоненте использовать реальные цвета(например clSilver вместо clBtnFace), (RUSSIAN_CHARSET вместо DEFAULT_CHARSET) и.т.д, использовать сплиттеры, кнопок вообще поменьше, а те что есть должны быть на тулбарах, надписей на кнопках вообще надо избегать, вместо надписей иконки и hints.
Вот общие принципы.
← →
OxOTHuK (2002-09-24 22:39) [2]2 cypher
а если без этого не обойтись, старайся все фиксить, закреплять Анкорами, Алигнами... храни ini-файл настройки, в который запихни все что можно, а при запуске все доставай...
но совет zam2000 более ценный, старайся следовать ему...
=)
← →
cypher (2002-09-25 01:07) [3]У например окно диалога настроек программы... там порядка 10 Tab"ов. в каждом табе туева хуча чекбоксов и каптионов. все выравнено как нада.
ставим в системе КРУПНЫЙ шрифт, и все поползло поехало.
Вообще, все Фонты основаны на каком-то ДефаулФонте. пробовал менять его при запуске программы (по создания главной формы) - результат никакой =\
← →
Reindeer Moss Eater (2002-09-25 08:45) [4]
const
App_FontSize:=10;
var
DC:HDC;
begin
DC:=GetDC(0);
ScreenLogPixels:=GetDeviceCaps(DC,LOGPIXELSY);
ReleaseDC(0,DC);
DefFontData.Height:= - MUlDiv(App_FontSize,ScreenLogPixels,72);
Font.Size:=DefFontData.Height;
end;
После этого при любом размере системного шрифта форма будет со шрифтом десятка (таким, как он выглядит при нормальном размере шрифта 96 точек на дюйм)
← →
Bond (2002-09-25 10:27) [5]Используй только реальные цвета. Сам выставляй размеры и тип всех шрифтов на кнопках, надписях
← →
Anatoly Podgoretsky (2002-09-25 10:36) [6]Если учесть что размеры шрифтов могут меняться относительно нормального в пределах от 10 лр 500 % то задачка сложная
Реально обычно поступают так, разработку ведут при крупном размер шрифта 125% и проверяют при нормальном. Естественно, что все нужные свойства формы выставляются должным образом. Придерживая этого правила можно получить приемлемый вид в большинстве случаев. Альтернативой является подстройка всех размеров и положений в рантайм
← →
Оля (2002-09-25 11:11) [7]А кто подскажет как программно узнать какой размер шрифта установлен на машине 96 или 120 dpi, разрешение экрана?
Мне кажется получив такую информацию можно попытатся масштабировать компоненты в зависимости от установок шрифта и разрешения экрана.
← →
Reindeer Moss Eater (2002-09-25 11:52) [8]>ОЛЯ
см. Reindeer Moss Eater (25.09.02 08:45)
← →
Оля (2002-09-25 13:00) [9]> Reindeer Moss Eater
типа, если я это вставлю в свой проект должно все получиться?
попробовала...
const
App_FontSize:=10;
[Error] nay.pas(493): "=" expected but ":=" found
// ну с этим понятно, конст - `=`
а вот, что с этим делать ?
[Error] nay.pas(559): Undeclared identifier: "ScreenLogPixels"
← →
MegaBass (2002-09-25 13:41) [10]
var
oldFont, newFont: HFONT;
lDC: HDC;
begin
lDC := GetDC(0;)
newFont := CreateFOnt(...читай хелп);или CreateFontIndirect(...);
oldFont := SelectObject(lDC, newFont);
...
тут все будет правильным фонтом
...
SelectObject(lDC, oldFont);
end;
← →
Reindeer Moss Eater (2002-09-25 14:10) [11]const
App_FontSize = 10;
var
DC:HDC;
ScreenLogPixels:integer;
begin
DC:=GetDC(0);
ScreenLogPixels:=GetDeviceCaps(DC,LOGPIXELSY);
ReleaseDC(0,DC);
DefFontData.Height:= - MUlDiv(App_FontSize,ScreenLogPixels,72);
Font.Size:=DefFontData.Height;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c