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

Вниз

Масштабирование окна   Найти похожие ветки 

 
Mameluke ©   (2006-08-28 15:27) [0]

Здравствуйте, уважаемые мастера Delphi!

Буду весьма признателен за помощь по следующему вопросу:

Создал форму с размещенными на ней элементами (кнопки, поля ввода и т.д.), размер формы примерно 900 на 600 пикселей. Столкнулся с тем, что при запуске созданной мной проги на компе, где стоит Windows 98, и разрешении 1024 на 768, видимо из-за того, что пользователь этого компа из-за слабого зрения поставил какую-то настройку рабочего стола, увеличивающую размер элементов формы (не только крупный шрифт), сама форма выглядит безобразно расползшейся по экрану со всеми вытекающими многие элементы также повылезали за экран, их не видно. Сам пользователь компа с 98-м мне точно объяснить не может, что у него там с настройками, я видел эту ситуацию только мельком, самому покопаться и увидеть, какая именно настройка рабочего стола тому причиной, не удалось. Как избежать подобного негативного эффекта?

Свойство TForm.Scaled ставить и в true, и в false пробовал - не помогло....


 
Desdechado ©   (2006-08-28 19:40) [1]

В XP это здесь "Экран - параметры - дополнительно - общие - масштаб".
По умолчанию стоит 96.
Чтобы не расползалось, ставь якоря (Anchors) у компонентов на форме. Различные их комбинации очень удобны (даже полное отсутствие удобно для центрирования).
Ну, и заранее предусматривай, что буквы могут быть шире и выше.


 
DprYg ©   (2006-08-28 19:49) [2]

Еще может быть полезно Constraints, Alignment и ScaleBy


 
Mameluke ©   (2006-08-28 20:35) [3]

Спасибо за такую развернутую помощь! :) Попробую!


 
Ketmar ©   (2006-08-28 20:55) [4]

а вообще -- надо проверять на подобную устаноку и корректировать формы соответственно.


 
Desdechado ©   (2006-08-29 12:30) [5]

Ketmar ©   (28.08.06 20:55) [4]
Если не сбрасывать умолчательных свойств масштабирования у формы и не выставлять принудительно шрифты, то все делается само.
Форса сама растягивается, шрифты и контролы масштабируются.


 
han_malign ©   (2006-08-29 12:38) [6]


> Чтобы не расползалось, ставь якоря (Anchors) у компонентов на форме. Различные их комбинации очень удобны

- кроме комбинации [akRigth, akBottom] - на больших масштабах улетают в туманную даль(D7), приходится разбивать на панели с выравниванием...


 
oxffff ©   (2006-08-29 12:49) [7]

Воспользуйтесь этим
Где 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;


 
Desdechado ©   (2006-08-29 13:03) [8]

han_malign ©   (29.08.06 12:38) [6]
Да, бывает, но не всегда. Закономерности не нашел, хотя не сильно и копался...


 
Mameluke ©   (2006-08-30 18:54) [9]

Desdechado:

В том-то и дело, что мне желательно, чтобы растягивания вообще не было. Пусть относительные размеры на экране будут такими же, как и было задумано и не меняются)

han_malign


> приходится разбивать на панели с выравниванием...


А можно немного поподробнее про эту вещь?)


 
Desdechado ©   (2006-08-30 18:56) [10]

> Пусть относительные размеры на экране будут такими же,
> как и было задумано и не меняются)
А вот за такое бьют по рукам. Пользователю НУЖНО иметь масштабирование, а ты ему препятствуешь. И зачем ему такая программа?


 
Ketmar ©   (2006-08-30 19:04) [11]

> [10] Desdechado ©   (30.08.06 18:56)
не только по рукам. по хитрому лицу тоже.


 
Anatoly Podgoretsky ©   (2006-08-30 20:25) [12]

Я уже тебе писал про пользователя и предлагал задуматься, почему он включил крупные шрифты и что с пользователем делать.
Поступай с другим так, как хочешь что бы другой поступал с тобой.
Ну и совет проективать в крупных шрифтах, и проверять в нормальных остается в силе.


 
Mameluke ©   (2006-08-31 11:34) [13]

Да, пожалуй, вы правы - буду проектировать в крупных шрифтах, и проверять на нормальных - всего-то два варианта)

Тогда возникает небольшая проблема - если элементы на форме сами масшиабируются - и по размерам, и по положению на форме, то сама форма изменять свои размеры упорно не хочет. Свойство TForm.AutoSize не очень подходит - размеры автоматически подгоняются по крайним элементам формы, что выглядит не очень красиво... Как добится желаемого масштабирования формы?


 
konrads   (2006-08-31 12:07) [14]

пробуй  

Form1.ScaleBy(Screen.Width,XXX);

XXX - это ширина твоей формы во время разработки. После запуска форма смаштабируется на ширину экрана



Страницы: 1 вся ветка

Текущий архив: 2006.10.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.046 c
2-1158821345
Dima K
2006-09-21 10:49
2006.10.08
Handle чужего окна


15-1158480993
Весь в делах
2006-09-17 12:16
2006.10.08
Разработка


15-1158496222
TStas
2006-09-17 16:30
2006.10.08
Как за сделать, чтобы сайт в поискухе вылазил среди первых?


3-1154704412
Klever
2006-08-04 19:13
2006.10.08
количество строк таблицы DBGrid


11-1134201796
Vano12
2005-12-10 11:03
2006.10.08
Помогите-Я сделал авторан на диск в Delphi мне надо чтобы кнопка