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

Вниз

Самопроизвольное изменение размеров шрифта у компонентов формы   Найти похожие ветки 

 
SMT   (2004-08-31 19:56) [0]

Уважаемые мастера,

Почему при переносе моей программы с одного компьютера на другой меняются размеры шрифта у разных компонентов, помещенных на форму?

С уважением, Игорь Степанов


 
pasha_golub ©   (2004-08-31 20:10) [1]

1. Потому что на разных машинах разные настройки видео, то есть на одной 800х600, а на другой 1024х728
2. Потому что на другой машине нету какого-то шрифта

еще есть возможности, но, думаю, стоит проверить хотя бы эти


 
GuAV ©   (2004-08-31 20:58) [2]

3. desk.cpl->Настройка->Дополнительно->Общие->Размер шрифта


 
Mim1 ©   (2004-08-31 21:08) [3]

TForm.Scaled


 
SMT   (2004-09-01 20:15) [4]

Уважаемые мастера,

Спасибо за советы. Я поэкспериментировал и установил, что главное - это размер шрифта, установленный через Настройка - Экран - Настройка - Дополнительно - размер шрифта. Этот параметр влияет на все шрифты как в самой Delphi, так и в моей программе. При этом, установка свойства Form.Scaled=True и далее желаемый  размер в свойстве Form.PixelsPerInch ничего не дает.
Как это предотвратить и  обеспечить доминирование указанных свойств формы над системным размером шрифта?
Заранее благодарю. Игорь Степанов


 
Kurtevich ©   (2004-09-01 20:48) [5]

наверно размер шрифта надо соотносить с PixelsPerInch. то есть Font.Size := _size/Font.PixelsPerInch или умножить, может еще на 100 где-то, ну вобщем типа того... :)


 
Mim1 ©   (2004-09-02 01:08) [6]


> При этом, установка свойства Form.Scaled=True и далее желаемый
>  размер в свойстве Form.PixelsPerInch ничего не дает.

может Form.Scaled=False
:)


 
SMT   (2004-09-02 19:27) [7]

Уважаемые мастера,

Большое спасибо за ценные советы. На их основе мне удалось найти способ делать размер шрифтов на элементах формы неизменным независимо от системной установки "Размер шрифта".
Он довольно прямолинейный, хотя работает. Может быть есть лучше.

В Object Inspector надо установить для всех компонентов на форме свойство ParentFont=True.
Далее надо добавить в uses модуль Registry;
В форме объявить переменные

var
 CurReg:TRegistry;
 logpixels_cm:byte;

Затем в методе TForm1.FormCreate прочитать значение параметра из Реестра
CurReg:=TRegistry.Create;
CurReg.RootKey:=HKEY_CURRENT_CONFIG;
CurReg.OpenKeyReadOnly("\Software\Fonts");
logpixels_cm:=CurReg.ReadInteger("LogPixels");

Далее в этом же методе форма шкалируется, так как она автоматически увеличивается в зависимости от величины LogPixels.
  ScaleBy(trunc(96*100/logpixels_cm),100);
Наконец, поскольку метод ScaleBy может неудачно изменить размер шрифтов, их надо выставить принудительно, например:
 
If logpixels_cm<=96 then Form1.Font.Size:=10;
If  (logpixels_cm>96) and (logpixels_cm<=120) then Form1.Font.Size:=9;
If  (logpixels_cm>120) then Form1.Font.Size:=8;
 
Это все работает в диапазоне от "Обычный размер" (96 пикселей/дюйм) до "крупный размер" (120 пикселей/дюйм).

Еще раз большое спасибо за ценные советы.
С уважением, Игорь Степанов


 
Mim1 ©   (2004-09-03 05:29) [8]

Скажите а scaled := false; не помогло? Меня это свойство всегда выручало.


 
DimKa ©   (2004-09-03 09:48) [9]


> Mim1 ©   (03.09.04 05:29) [8]
> Скажите а scaled := false; не помогло? Меня это свойство
> всегда выручало.

Должно помогать, согласен



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

Форум: "Основная";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.049 c
9-1085073095
Proger
2004-05-20 21:11
2004.09.19
Программные маски


4-1091568359
Ded Moroz
2004-08-04 01:25
2004.09.19
Режим заставки в NT


11-1080044448
Рома
2004-03-23 15:20
2004.09.19
OpenGL в MCK


1-1094143843
Evgenius
2004-09-02 20:50
2004.09.19
Создание help файла в формате CHM


14-1094003510
Думкин
2004-09-01 05:51
2004.09.19
С днем рождения! 1 сентября





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