Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

Неизвестный компонент   Найти похожие ветки 

 
smaller   (2007-03-12 13:21) [0]

Помогите пожалйста определить компонент TShowFont(Control)
В D7 такого не могу найти даже в хелпе, а без него  ниже приводимый
код (защита от крупных шрифтов) не работает. Может быть этот компонент собственная разработка автора ?

unit glSmallFontsDefence;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
 TglSmallFontsDefence = class(TComponent)
 private
   procedure UpdateFonts(Control: TWinControl);
   { Private declarations }
 protected
   procedure Loaded; override;
 public
   constructor Create(AOwner: TComponent); override;
 published
   { Published declarations }
 end;

procedure Register;

implementation

function IsSmallFonts: boolean;{Значение функции TRUE если мелкий шрифт}
var DC: HDC;
begin
 DC:=GetDC(0);
 Result:=(GetDeviceCaps(DC, LOGPIXELSX) = 96);
 { В случае крупного шрифта будет 120}
 ReleaseDC(0, DC);
end;

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.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;
 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.


 
MBo ©   (2007-03-12 13:34) [1]

type
TShowFont = class(TControl);

это вписать и всё.


 
Kolan ©   (2007-03-12 13:38) [2]

> [1] MBo ©   (12.03.07 13:34)
> type
> TShowFont = class(TControl);
>
> это вписать и всё.


Я вот тоже веточку создавал
http://delphimaster.net/view/1-1173442190/
правда проигнорировали.

Как "НЕ бороться" с кр. шрифтом, а "подружится" с ним? Пользователь ведь незря его выбрал, зачем его мучать еслион плохо видит например...


 
smaller   (2007-03-12 16:44) [3]

После  добавки  TShowFont = class(TControl);    
unit    компилируется,  спасибо!
Ну а проверить, работает этот компонент или нет я не могу, потому как оказалось, что не умею поставить самодельный невизуальный компонент на форму.

Не подскажите ли кстати, как это делается?


 
Elen ©   (2007-03-12 17:26) [4]


> Не подскажите ли кстати, как это делается?

Попробуй его проинсталить в Делфи. Создай на него Package и проинсталь его в указанную тобой вкладку.


 
RASkov   (2007-03-12 17:57) [5]

> [3] smaller   (12.03.07 16:44)

Если это[0] весь код компонента, то испытать его можно простым вызовом процедуры UpdateFonts, или т.е. нет смысла делать этот код компонентом.
Достаточно одной процедуры в общем модуле для проекта...


 
RASkov   (2007-03-12 18:02) [6]


> то испытать его можно простым вызовом процедуры UpdateFonts

Кстати здесь даже и создавать его(компонент) не надо, помоему можно и так:

procedure TForm1.ButtonClick();
var C: TglSmallFontsDefence;
begin
 C.UpdateFonts(Form1);
end;


> Достаточно одной процедуры в общем модуле для проекта...

Т.е. достаточно процедуры
procedure UpdateFonts(Control: TWinControl);



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

Текущий архив: 2007.04.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
2-1173691444
kyn66
2007-03-12 12:24
2007.04.01
Выбор "горичих" клавиш


10-1130305721
Mary
2005-10-26 09:48
2007.04.01
Подключение клиентов к com-серверу


15-1173038445
Romm
2007-03-04 23:00
2007.04.01
PHP и MySQL срочно!


15-1173453409
Sergp_N/A
2007-03-09 18:16
2007.04.01
Чем можно создать разделы на винте?


2-1173260999
Officeman
2007-03-07 12:49
2007.04.01
сортировка в TListView