Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.056 c
3-1155098797
al_tor
2006-08-09 08:46
2006.10.08
Ошибка при вызове ADOQuery


15-1158509360
dreamse
2006-09-17 20:09
2006.10.08
За какое время сможете найти ответ в приколе ?


15-1158557709
Ega23
2006-09-18 09:35
2006.10.08
С Днём рождения! 16 сентября


6-1146062611
Ragim
2006-04-26 18:43
2006.10.08
PGP


15-1158235336
Still Swamp
2006-09-14 16:02
2006.10.08
Что можно использовать в качестве архиватора





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский