![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Масштабирование окна [D6, WinXP]
Mameluke © (2006-08-28 15:27:00)Здравствуйте, уважаемые мастера Delphi!
Буду весьма признателен за помощь по следующему вопросу:
Создал форму с размещенными на ней элементами (кнопки, поля ввода и т.д.), размер формы примерно 900 на 600 пикселей. Столкнулся с тем, что при запуске созданной мной проги на компе, где стоит Windows 98, и разрешении 1024 на 768, видимо из-за того, что пользователь этого компа из-за слабого зрения поставил какую-то настройку рабочего стола, увеличивающую размер элементов формы (не только крупный шрифт), сама форма выглядит безобразно расползшейся по экрану со всеми вытекающими многие элементы также повылезали за экран, их не видно. Сам пользователь компа с 98-м мне точно объяснить не может, что у него там с настройками, я видел эту ситуацию только мельком, самому покопаться и увидеть, какая именно настройка рабочего стола тому причиной, не удалось. Как избежать подобного негативного эффекта?
Свойство TForm.Scaled ставить и в true, и в false пробовал - не помогло....
konrads (2006-08-31 12:07:00) [1]пробуй
Form1.ScaleBy(Screen.Width,XXX);
XXX - это ширина твоей формы во время разработки. После запуска форма смаштабируется на ширину экрана
Mameluke (2006-08-31 11:34:00) [2]Да, пожалуй, вы правы - буду проектировать в крупных шрифтах, и проверять на нормальных - всего-то два варианта)
Тогда возникает небольшая проблема - если элементы на форме сами масшиабируются - и по размерам, и по положению на форме, то сама форма изменять свои размеры упорно не хочет. Свойство TForm.AutoSize не очень подходит - размеры автоматически подгоняются по крайним элементам формы, что выглядит не очень красиво... Как добится желаемого масштабирования формы?
Anatoly Podgoretsky (2006-08-30 20:25:00) [3]Я уже тебе писал про пользователя и предлагал задуматься, почему он включил крупные шрифты и что с пользователем делать.
Поступай с другим так, как хочешь что бы другой поступал с тобой.
Ну и совет проективать в крупных шрифтах, и проверять в нормальных остается в силе.
Ketmar (2006-08-30 19:04:00) [4]> [10] Desdechado © (30.08.06 18:56)
не только по рукам. по хитрому лицу тоже.
Desdechado (2006-08-30 18:56:00) [5]> Пусть относительные размеры на экране будут такими же,
> как и было задумано и не меняются)
А вот за такое бьют по рукам. Пользователю НУЖНО иметь масштабирование, а ты ему препятствуешь. И зачем ему такая программа?
Mameluke (2006-08-30 18:54:00) [6]Desdechado:
В том-то и дело, что мне желательно, чтобы растягивания вообще не было. Пусть относительные размеры на экране будут такими же, как и было задумано и не меняются)
han_malign
> приходится разбивать на панели с выравниванием...
А можно немного поподробнее про эту вещь?)
Desdechado (2006-08-29 13:03:00) [7]han_malign © (29.08.06 12:38) [6]
Да, бывает, но не всегда. Закономерности не нашел, хотя не сильно и копался...
oxffff (2006-08-29 12:49:00) [8]Воспользуйтесь этим
Где Xmultiplier,Ymultiplier- множители от 0 до 1.
procedure AdjustControlSize(Control:Tcontrol;Xmultiplier,Ymultiplier:double);
begin
Control.Width:=trunc(GetSystemMetrics(SM_CXSCREEN)*Xmultiplier);
Control.Height:=trunc(GetSystemMetrics(SM_CYSCREEN)*Ymultiplier);
end;
han_malign (2006-08-29 12:38:00) [9]
> Чтобы не расползалось, ставь якоря (Anchors) у компонентов на форме. Различные их комбинации очень удобны
- кроме комбинации [akRigth, akBottom] - на больших масштабах улетают в туманную даль(D7), приходится разбивать на панели с выравниванием...
Desdechado (2006-08-29 12:30:00) [10]Ketmar © (28.08.06 20:55) [4]
Если не сбрасывать умолчательных свойств масштабирования у формы и не выставлять принудительно шрифты, то все делается само.
Форса сама растягивается, шрифты и контролы масштабируются.
Ketmar (2006-08-28 20:55:00) [11]а вообще -- надо проверять на подобную устаноку и корректировать формы соответственно.
Mameluke (2006-08-28 20:35:00) [12]Спасибо за такую развернутую помощь! :) Попробую!
DprYg (2006-08-28 19:49:00) [13]Еще может быть полезно Constraints, Alignment и ScaleBy
Desdechado (2006-08-28 19:40:00) [14]В XP это здесь "Экран - параметры - дополнительно - общие - масштаб".
По умолчанию стоит 96.
Чтобы не расползалось, ставь якоря (Anchors) у компонентов на форме. Различные их комбинации очень удобны (даже полное отсутствие удобно для центрирования).
Ну, и заранее предусматривай, что буквы могут быть шире и выше.