Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Установлен ли шрифт? 
:(
    Опции темы
Borland_Delphi_6
  Дата 22.7.2004, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Смотрел ФАК, там есть нечто похожее, но не то. Нужно проверить, есть ли в системе необходимый шрифт.


--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Girder
Дата 22.7.2004, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 31
Всего: 155



Честно признаюсь в ФАК не заглядывал, т.ч. может повторюсь wink.gif .

Код
Type TPBoolean=^Boolean;
...
function EnumProc(var elf: TEnumLogFont; var ntm: TNewTextmetric; FontType: Integer; FlagData: TPBoolean): Integer; stdcall;
begin
{Здест проверяеш шрифты которые есть для данного семейства}
{К примеру:
 if elf.elfLogFont.lfHeight=13 then
  begin
   FlagDate^:=true;
   Result:=0;
  end else Result:=1; //просматриваем дальше
end;

procedure TForm1.FormCreate(Sender: TObject); //Начинаем
var aFonts:TStrings;
      f:boolean;
      i:integer;
begin
f:=false;
aFonts:=TStringList.Create;
aFonts.Assign(Screen.Fonts);
i:=aFonts.Count
if i>0 then
 repeat
  dec(i);
   if ansicomparetext(aFonts.Strings[i],'твое семейство')=0 then
     EnumFontFamilies(Self.Canvas.Handle, PChar(aFonts.Strings[i]),@EnumProc, DWord(PChar(f))); //перечисляем
 until (i=0)or(f);
aFonts.Free;
if f then
 begin
  //шрифт найден
 end else
 begin
  шрифт не найден
 end;
end;


Удачи.

Это сообщение отредактировал(а) Girder - 22.7.2004, 17:13


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Borland_Delphi_6
  Дата 23.7.2004, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



Что-то не получается...
Код

Type TPBoolean=^Boolean;

function EnumProc(var elf: TEnumLogFont; var ntm: TNewTextmetric; FontType: Integer; FlagData: TPBoolean): Integer; stdcall;
begin
{Здест проверяеш шрифты которые есть для данного семейства}
{К примеру:}
if elf.elfLogFont.lfHeight=13 then
 begin
  FlagData^:=true;
  Result:=0;
 end else Result:=1; //просматриваем дальше
end;


procedure TForm1.FormCreate(Sender: TObject);
var aFonts:TStrings;
     f:boolean;
     i:integer;

begin
ComboBox1.Items := Screen.Fonts;
Combobox1.Items.
f:=false;
aFonts:=TStringList.Create;
aFonts.Assign(Screen.Fonts);
i:=aFonts.Count;
if i>0 then
repeat
 dec(i);
  if ansicomparetext(aFonts.Strings[i],'Tahoma')=0 then
    EnumFontFamilies(Self.Canvas.Handle, PChar(aFonts.Strings[i]),@EnumProc, DWord(PChar(f))); //перечисляем
until (i=0)or(f);
aFonts.Free;
if f then
begin
 ShowMessage('Found!');
 end else
begin
 ShowMessage('Not Found!');
 end;

end;



--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Girder
Дата 23.7.2004, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 31
Всего: 155



1) строку
Цитата
EnumFontFamilies(Self.Canvas.Handle, PChar(aFonts.Strings[i]),@EnumProc, DWord(PChar(f)));
замени на
Код
EnumFontFamilies(Self.Canvas.Handle, PChar(aFonts.Strings[i]),@EnumProc, integer(PChar(@f)));

2) Не много информации о шрифтах
Код
if elf.elfLogFont.lfHeight=13 then
- если этого размера нет, это не значить что этим размером ты не можеш пользоваться. Замени её к примеру, на
Код
if fonttype = TRUETYPE_FONTTYPE
или там стиль проверяй и т.д. и т.п. - короче на то, без чего ты точно не сможеш(или не желательно) этот шрифт использовать.

Удачи.

Это сообщение отредактировал(а) Girder - 23.7.2004, 13:54


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.