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

Вниз

Гадость со шрифтами... (жирнооее все)   Найти похожие ветки 

 
D[u]fa ©   (2006-09-25 18:54) [0]

Привет всем... давно хотел сказать почему все время приходся менять размер шрифта на -11 чтобы он нормально выглядел... но сейчас дело не в этом.. обновился до 2.39.1 совсем недавно, взялся за старую либу, перекомпилил.... и удивился, контролы которые создаются в ней имеют мерзкий жирный шрифт... и самое интересное он не меняется =\


 
nicesc   (2006-09-26 09:13) [1]

выставь размер = 14, будет как в обычной дельфе ;)


 
D[u]fa ©   (2006-09-26 15:34) [2]

не работает в том то и дело....


 
D[u]fa ©   (2006-09-28 09:34) [3]

ну тока у меня такая проблема чтоли? =\


 
ANTPro ©   (2006-09-28 13:55) [4]

D[u]fa ©   (28.09.06 9:34) [3]
Код в студию :)


 
D[u]fa ©   (2006-09-28 21:51) [5]

да нету кода...

library liba;

procedure Init(const formHandle, tabHandle: PControl); stdcall;
begin
 // log
 txt:= NewListbox(tab.TC_Pages[2], []);
 // ......
end;

exports Init;

end.

вот кусок основной так сказать)


 
D[u]fa ©   (2006-10-01 18:16) [6]

Народ! так не интересно... глюк со шрифтом тока у меня?


 
GMax   (2006-10-01 21:40) [7]

это тот самый код ?
а где в этом коде создание шрифта ? или выдержка неудачная?


 
D[u]fa ©   (2006-10-02 08:07) [8]

можн оставить так, можно добавить

txt.Font.FontName:= "Tahoma";
txt.Font.FontHeight:= -9;

но ничего не изменится


 
Vladimir Kladov   (2006-10-02 21:56) [9]

library. Читаем и смотрим примеры. Что у вас выполняет функцию обработки сообщений? Должен делать Applet, если форма модальная. Если форма немодальная, и цикл обработки сообщений чужой, то какая гарантия, что WM_SETFONT дойдет до окна.


 
D[u]fa ©   (2006-10-03 08:31) [10]

не нашел примеров я, плохо искал..
А вот почему вс это произошло после обновления? это вопрос, я исправил глюк таким образом что контролы теперь создает форма когда полуает опр. сообщение.


 
Vladimyr ©   (2006-10-21 14:27) [11]

Недавно обновил КОЛ и перебилдил своё старое приложение, в результате получил ту же жирную гадость...
Ни одного байта в коде не менял.
Ковыряюсь...


 
Vladimyr ©   (2006-10-21 17:30) [12]

я идиот!
SMALLEST_CODE вместо SMALLEST_CODE_PARENTFONT

Читайте документацию...  :((


 
D[u]fa ©   (2006-10-21 21:05) [13]

Владимир, Вы не идиот. Просто к моим мессагам нужно было отнестись серьезнее =) я б не стал писать просто так....

значит если убрать SMALLEST_CODE_PARENTFONT то проблема исчезает?

и еще вопросик, а нельзя ли сделать что б у формы сразу FontHeight был -11 ? просто каждый раз менять надо, чтобы нормальный шрифт был %)


 
ANTPro ©   (2006-10-21 21:11) [14]

D[u]fa ©   (21.10.06 21:05) [13]
и еще вопросик, а нельзя ли сделать что б у формы сразу FontHeight был -11 ? просто каждый раз менять надо, чтобы нормальный шрифт был %)

Вроде как, выставлен выневый дефолт. Я постоянно ставлю 13 и шрифт Veardana.


 
Vladimir Kladov   (2006-10-21 21:20) [15]

уточните что значит "каждый раз". Когда проект загружается (тогда тут что-то не то). А иначе - когда?


 
ANTPro ©   (2006-10-21 21:36) [16]

Vladimir Kladov   (21.10.06 21:20) [15]
уточните что значит "каждый раз"

При каждом создании новой формы в проекте(или нового проекта)...


 
Vladimir Kladov   (2006-10-21 21:51) [17]

здрасьте приехали, а в VCL разве не так? Или что вы предлагаете, я не понял. Сделать в TKOLProject шрифт по умолчанию для новых форм? Народ и так путается со свойствами, которые не имеют отношения к ран-тайм, а это свойство не будет еще иметь отношения и design-time, кроме создания новой формы. (Кроме того, в момент создания формы, точнее, бросания на нее TKOLForm, еще надо будет убедиться, что нашелся TKOLProject).

Нет, ну по-моему, это как-то чересчур. Вы что, каждые 5 секунд новую форму создаете что ли. Это же работа редкая. И в VCL приходится помнить, что создал форму - измени у нее размер шрифта на "любимый" (я всегда 10 ставлю для VCL). И еще кучу действий (выключить Scale, изменить Position, и отключить линейки прокрутки на форме - чтобы в непривычных условиях настройки рабочего стола и гигантского шрифта форма не выглядела по-идиотски).


 
D[u]fa ©   (2006-10-21 21:56) [18]

хм... ну так я про то, что в VCL создал форму и там сразу размер шрифта 8, и его мона юзать сразу... а в КОЛ создал форму и сразу шрифт жирный и уродский... сразу лезешь его менять... а так был бы как в VCL и не надо было бы этого делать...

Вопчем я за то что б у новой формы шрифт по умолчанию был такой же как и в VCL


 
ANTPro ©   (2006-10-21 22:04) [19]

Незнаю как там в VCL не юзал, но в KOL дефолтовый шрифт меня раздражает ...


 
Vladimir Kladov   (2006-10-21 23:42) [20]

Т.е. как VCL не юзал. Вообще, то есть?


 
Vladimir Kladov   (2006-10-21 23:51) [21]

видите ли. По умолчанию шрифт не устанавливается в KOL вообще. При этом система сама использует тот шрифт, который настроен в начтройках рабочего стола. Это во-первых правильно. Пользователь должен иметь возможность настроить шрифты сразу для всех приложений используя одно средство конфигурирования, предоставляемое системой. А теперь вы берете и ставите свои шрифты. И вот плохо видящий пользователь, который поставил себе шрифт 18-го размера, чтобы все видеть, в нормальных приложениях все и видит, как настроил. Но стоит ему запустить дельфовое приложение, и хоть лупу бери. Потому что дельфи ставит 8, по умолчанию. А во-вторых, это экономно. Если вы в своем приложении не меняете шрифт, то вовсе не создается и не используется объект шрифта. Приложение будет худее на пару килобайтов.


 
ANTPro ©   (2006-10-21 23:55) [22]

Vladimir Kladov   (21.10.06 23:42) [20]
Delphi пользую 2 года и 10 дней, KOL - 2 года. До Delphi юзал VB (Незнал что такое паскаль)...
Вроде 1 курсовик писал на VCL когда-то ...


 
Vladimir Kladov   (2006-10-21 23:57) [23]

А бывает, кстати, и наоборот. Плохо видящий программер, который все свое зрение просадил, играя в квейк и программируя по 18 часов в сутки, ставит в своем приложении шрифт 20, потому что он ни черты не видит на своем дисплее 2048х1600, если текст мельче. А потом его приложение попадает к пользователю, у которого рабочий стол 800х600 и монитор 14 дюймов. И из надписи на каждой кнопке помещается по полторы буквы...


 
ANTPro ©   (2006-10-22 00:04) [24]

Vladimir Kladov   (21.10.06 23:51) [21]
По умолчанию шрифт не устанавливается в KOL вообще.При этом система сама использует тот шрифт, который настроен в начтройках рабочего стола.

У меня там Veardana 7px стоит, а на форме MS Sans Serif. MCK его по дефолту ставит.


 
Vladimir Kladov   (2006-10-22 00:10) [25]

Нет, давайте разберемся. MCK точно ничего не ставит, никакого фонта. Вот я создал приложение, бросил кнопку и метку, нигде Font не трогал. В inc-файле Font тоже нигде не упоминается и не присваивается.

procedure NewForm1( var Result: PForm1; AParent: PControl );
begin

 {$IFDEF KOLCLASSES}
 Result := PForm1.Create;
 {$ELSE OBJECTS}
 New( Result, Create );
 {$ENDIF KOL CLASSES/OBJECTS}
 Result.Form := NewForm( AParent, "Form1" ).SetPosition( 192, 109 ){No MainMenu!}.SetClientSize( 534, 346 );
 Applet :=  Result.Form;
 Result.Form.Add2AutoFree( Result );
{$IFDEF UNICODE_CTRLS}
    Result.Form.SetUnicode(TRUE);
{$ENDIF UNICODE_CTRLS}
  {$IFDEF USE_NAMES}
   Result.Form.Name := "Form1";
  {$ENDIF}
   // Result.Label1.TabOrder = -1
   Result.Label1 := NewLabel( Result.Form, "Label1" ).SetPosition( 24, 16 ).AutoSize( TRUE );
  {$IFDEF USE_NAMES}
   Result.Label1.Name := "Label1";
  {$ENDIF}
  {$IFDEF UNICODE_CTRLS}
   Result.Label1.SetUnicode(TRUE);
  {$ENDIF UNICODE_CTRLS}
   // Result.Button1.TabOrder = 0
   Result.Button1 := NewButton( Result.Form, "Button1" ).SetPosition( 88, 16 );
  {$IFDEF USE_NAMES}
   Result.Button1.Name := "Button1";
  {$ENDIF}
  {$IFDEF UNICODE_CTRLS}
   Result.Button1.SetUnicode(TRUE);
  {$ENDIF UNICODE_CTRLS}

end;


Где тут что выставляется, скажите мне?


 
ANTPro ©   (2006-10-22 00:19) [26]

Vladimir Kladov   (22.10.06 0:10) [25]
ничего не ставит, никакого фонта

Тогда откуда у Form.Font.FontName по дефолту MS Sans Serif?

  {$IFDEF USE_NAMES}
   Result.Form.Name := "Form1";
  {$ENDIF}
   Result.Form.Font.FontName := "Veardana";//Если закоментить то будет MS Sans Serif
   // Result.Button1.TabOrder = 0
   Result.Button1 := NewButton( Result.Form, "Button1" ).SetPosition( 48, 88 );
  {$IFDEF USE_NAMES}


 
Vladimir Kladov   (2006-10-22 00:22) [27]

Вот, в MSDN что нашел:

During its initialization, GDI calls an internal function, InitFonts(), which is responsible for physically loading three basic fonts. Under a typical Windows 3.0 installation, the names of the font files for these fonts are listed in the [boot] section of the SYSTEM.ini file. For example, this section (in part) resembles the following:

  fixedfon.fon=vgafix.fon
  oemfonts.fon=vgaoem.fon
  fonts.fon=vgasys.fon
The system font is loaded first. GDI first checks the WIN.ini file in the [windows] section for the key name SystemFont=<file>, where <file> is a name of a bitmap font (such as HELV.FON). If GDI finds this keyname, it will attempt to load the specified file as thesystem font. Changing this value is one method the user can use to customize the system font. NOTE: If you change SystemFont=<font> you *must* also have the line fonts.fon=<font> in the [windows] section of the SYSTEM.INI file. Otherwise, Windows will not load properly.

If GDI does not find this key name, it attempts to load the system font from a file called FONTS.fon using the GDI function AddFontResource. Notice that on typical installations of Windows 3.0, there is no file called FONTS.fon. AddFontResource calls LoadLibrary to load the specified file. If the file is not found, LoadLibrary will search the SYSTEM.ini file (in the [boot] section) for a redirection of the file. As shown above, the [boot] section of SYSTEM.ini for a VGA system contains the following:

  fonts.fon=vgasys.fon
This line indicates that the system font should be loaded from the file VGASYS.fon, which resides in the system directory.

Once the system font is physically loaded, GDI attempts to load a fixed-pitch font. GDI examines the [boot] section of the SYSTEM.ini file and extracts the filename from the fixedfon.fon= field. If no file is specified, the system font (loaded in step 1) is substituted for the system fixed-pitch font.



Вывод: настраивается все-таки. Или в реестре, или в той части реестра, что теперь берет на себя функции system.ini. Наверное, из настроек дисплея (которые пользователь может рулить визуально) убрали по каким-то соображениям. Если это просто не недосмотр.


 
Vladimir Kladov   (2006-10-22 00:24) [28]

А вот откуда. Там же, в MSDN:

Using a Stock Font to Draw Text
The system provides six stock fonts. A stock font is a logical font that an application can obtain by calling the GetStockObject function and specifying the requested font. The following list contains the values that you can specify to obtain a stock font.

Value Meaning
ANSI_FIXED_FONT Specifies a monospace font based on the Windows character set. A Courier font is typically used.
ANSI_VAR_FONT Specifies a proportional font based on the Microsoft® Windows® character set. MS Sans Serif is typically used.
DEVICE_DEFAULT_FONT Specifies the preferred font for the specified device. This is typically ...


 
D[u]fa ©   (2006-10-22 10:20) [29]

Хмм, так вот мне интересно почему даже не сам шрифт MS Sans Serif по умолчанию... а просто почему у него такой размер странный



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

Форум: "KOL";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.039 c
6-1164175406
psa247
2006-11-22 09:03
2007.06.10
IpConfig /release


15-1179007844
Real
2007-05-13 02:10
2007.06.10
Евровидение: Сердючка на втором месте


15-1179371529
vajo
2007-05-17 07:12
2007.06.10
Можно ли выявить с какого компьютера из сети идет спам?


3-1174289525
Mmmaloy
2007-03-19 10:32
2007.06.10
Вычисляемое поле типа Memo


2-1179526975
Heart_Beat
2007-05-19 02:22
2007.06.10
HELP!





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