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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.047 c
2-1173427767
Megabyte
2007-03-09 11:09
2007.04.01
Переменная типа Файл в качестве параметра


5-1149830586
DimaBr
2006-06-09 09:23
2007.04.01
Нотационный список.


2-1173684582
smaller
2007-03-12 10:29
2007.04.01
Как определить длинну строки в пикселах ?


3-1168319296
Loginov Dmitry
2007-01-09 08:08
2007.04.01
Медленно изменяются записи при включенном CachedUpdates


2-1173264291
Nipel
2007-03-07 13:44
2007.04.01
позиция мыши в memo





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