![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос о размере раб. стола на разных компах. [D5]
Solod © (2002-04-03 05:01:00)Пожалуста, если не трудно, подскажите.
Как лучше решить проблему запуска программы на разных компьютерах с разными размерами рабочего стола? Есть ли такой компонент?
Спасибо.
PVOzerski (2002-04-03 16:02:00) [1]Я вот начальный размер формы (при последующих запусках проги берут у меня предыдущие координаты
из ini-файла) задаю, исходя из размеров рабочего стола, а расположение контролов корректирую в
обработчике сообщения onResize. Размеры рабочего стола можно определять по-разному
(например, через свойства предопределенной в VCL переменной Screen, или через комбинацию API-функций
GetDesktopWindow и GetClientRect). Не самый сложный путь, IMHO.
REA (2002-04-03 15:50:00) [2]А зачем эти TDBEdit по горизонтали? Может Grid какой?
В крайнем случае TScrollBox и в него Edit.
А вообще согласен насчет 640х480.
Donal_Graeme (2002-04-03 13:27:00) [3]просто проги надо разрабатывать под разрешение 640х480 :-))
Solod (2002-04-03 07:51:00) [4]Дело в том, что на форме расположены TDBEdit по горизонтали. Поэтому, я так думаю, нужно менять, например такие свойства как Size текста и т.п.
Walker (2002-04-03 05:38:00) [5]а насчёт формы - у неё есть свойство Position
поставь poDesktopCenter или poDefaultPosOnly
Walker (2002-04-03 05:37:00) [6]у каждой (или почти) компоненты есть свойство Anchors (у некоторых есть Align)
по умолчанию это свойство равно [akLeftm, akTop]
это означает что координаты объекта привязаны к левой и верхней границам окна
если же сделать [akLeftm, akTop, akBottom, akRight]
то при изменении размеров окна, размеры объекта будут автоматически менятся (пропорцианально)
так вот, в конечном итоге всё зависит от незначений объектов
например пользователю не нужно, чтоб обычные кнопки (TButton) изменяли размер, но зато их можно привязать например к нижней и левой границам [akBottom, akLeft], или только к правой [akRight]
Solod (2002-04-03 05:23:00) [7]Проблема: Я не знаю как лучше реализовать механизм изменения размеров и положений формы и всех её компонентов.
Walker (2002-04-03 05:13:00) [8]а в чём собственно проблема?
опредеилть размеры рабочего стола можно так:
var
Width, Height: integer;
begin
Width:=GetDeviceCaps(0, HORZRES); // ширина экрана в пикселях
Height:=GetDeviceCaps(0, VERTRES);// высота экрана в пикселях
...
end;
или так:
var
rWorkArea: TRect;
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @rWorkArea, 0);
end...
rWorkArea - рабочая область, то есть размер экоана за исключением панели задач.