Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с крупным шрифтом... [D7, WinXP]


Бульбаш ©   (2006-05-16 11:15:00) 

Впервые столкнулся с проблемой: на машине пользователь установил крупный шрифт в настройках win98 и все мои окошки поплыли, панели полезли друг на друга и т.д. Размеры шрифтов программно не задавал, только в OI. Подскажите плиз как обойти такую проблему?


Игорь Шевченко   (2006-05-17 10:38:00) [1]

balepa ©   (16.05.06 11:32) [1]

Могу посоветовать выпрямитель


ORMADA   (2006-05-17 06:37:00) [2]

не парься! поставь компонент защиты от больших шрифтов!
входит в библиотеку глобус , сейчас живёт в джеди,
http://sourceforge.net/projects/jvcl

pas

{ \x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F
 \x7F                                          \x7F
\x7F           Globus Delphi VCL Extensions Library             \x7F
\x7F                 ' GLOBUS LIB '                  \x7F
 \x7F                    Freeware                      \x7F
 \x7F      Copyright (c) 1998-2001 Chudin A.V, FidoNet: 1246.16       \x7F
 \x7F                                          \x7F
 \x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F
===================================================================
glSmallFontsDefence; Unit 01.2001    component TglSmallFontsDefence;
Component prevents your apps from BIG fonts.
===================================================================
}
unit glSmallFontsDefence;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, grids;

type
 TglSmallFontsDefenceOptions_ = (fdoExcludeGrids);
 TglSmallFontsDefenceOptions = set of TglSmallFontsDefenceOptions_;

 TglSmallFontsDefence = class(TComponent)
 private
   FOptions: TglSmallFontsDefenceOptions;
   procedure UpdateFonts(Control: TWinControl);
   procedure SetOptions(const Value: TglSmallFontsDefenceOptions);
   { Private declarations }
 protected
   procedure Loaded; override;
 public
   constructor Create(AOwner: TComponent); override;
 published
   property Options: TglSmallFontsDefenceOptions read FOptions write SetOptions;
 end;

procedure Register;

implementation
uses glUtils, glTypes;

procedure Register;
begin
 RegisterComponents('Gl Components', [TglSmallFontsDefence]);
end;

{ TglSmallFontsDefence }

constructor TglSmallFontsDefence.Create(AOwner: TComponent);
begin
 inherited;
 if (Owner is TForm) then (Owner as TForm).Scaled := false;
end;

procedure TglSmallFontsDefence.Loaded;
begin
 inherited;
 if (Owner is TForm) then (Owner as TForm).Scaled := false;
 if csDesigning in ComponentState then
 begin
   if not IsSmallFonts then
     ShowMessage('Проектирование приложения в режиме крупных шрифтов недопустимо!'#13#10'Компонент TglSmallFontsDefence отказывается работать в таких условиях.');
 end else
   UpdateFonts((Owner as TForm));
end;

procedure TglSmallFontsDefence.SetOptions(const Value: TglSmallFontsDefenceOptions);
begin
 FOptions := Value;
end;

procedure TglSmallFontsDefence.UpdateFonts(Control: TWinControl);
var
 i: integer;
 procedure UpdateFont(Font: TFont);
 begin
   if CompareText(Font.Name, 'MS Sans Serif') <> 0 then exit;
   Font.Name := 'Arial';
 end;
begin
 if IsSmallFonts then exit;
 if (fdoExcludeGrids in Options) and (Control is TCustomGrid) then exit;
 UpdateFont(TShowFont(Control).Font);
 with Control do
 for i:=0 to ControlCount-1 do
 begin
   UpdateFont(TShowFont(Controls[i]).Font);
   if Controls[i] is TWinControl then UpdateFonts(Controls[i] as TWinControl);
 end;

end;

end.


Desdechado   (2006-05-16 12:52:00) [3]

Бульбаш   (16.05.06 11:37) [3]
> Отпадает
что отпадает?


tsa   (2006-05-16 12:26:00) [4]

Подгони под размер 200 процентов, в описании напиши 100-200 процентов работает нормально, больше низзя. а если хочется, то за доп. деньги.


Kolan   (2006-05-16 11:57:00) [5]

Да переделай чтобы не налезало. Предлагал ведь...


Desdechado   (2006-05-16 11:37:00) [6]

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

единственное неудобство, связанное с изменением шрифта, - размеры форм пропорциональноне меняются, но это можно обработать

balepa ©   (16.05.06 11:32) [1]
такие пользователи просто не купят этот софт
ты ж не для самоутверждения его пишешь, а деньги зарабатываешь, надеюсь


Бульбаш   (2006-05-16 11:37:00) [7]

Отпадает, софтинка писана для родной бухгалтерии, а они в it-конторах отчен привередливые люди да и к начальству поближе...
P.S. и оно (начальство) уже выразило свое неудовольствие


balepa   (2006-05-16 11:32:00) [8]

Ставь принудительно нормальный шрифт нафиг, а кто не видит пусть очки покупает :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо