Главная страница
    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.044 c
3-1154770856
_RusLAN
2006-08-05 13:40
2006.10.08
Передача 3-мерного масива строк в ХП. D7. Firebird. IBX.


15-1157627753
Chort
2006-09-07 15:15
2006.10.08
13 сентября - День компьютерщика и программиста


1-1155795190
konrads
2006-08-17 10:13
2006.10.08
Доступные принтеры


2-1158769175
vegarulez
2006-09-20 20:19
2006.10.08
Не появляется контекстная справка-выбиралка, после точки...


15-1158293479
Pazitron_Brain
2006-09-15 08:11
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский