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

Вниз

Вид формы...   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
6-21162
Deep
2002-08-04 03:45
2002.10.07
клиент - сервер & socket


1-20985
Юра
2002-09-25 17:06
2002.10.07
Неправильное отображение русских букв в файле помощи


1-21048
Prok12
2002-09-27 13:34
2002.10.07
Не могу напечатать Bitmap на Printer.Canvas ...


1-21073
123456789
2002-09-24 23:33
2002.10.07
Как правильно сворачивать программу в TrayBar?


3-20887
Андрусь
2002-09-16 12:08
2002.10.07
Хитрый DataSet