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

Вниз

Можно ли сохранять и считывать TFont из файла   Найти похожие ветки 

 
Гриха   (2005-08-16 04:18) [0]

Здравствуйте, уважаемые Мастера!
Написал миниатюрные экранные часы с ремайндером.
Для хранения данных о настройках пользователя использовал файл опций.
При каждом закрытии программы в него производится запись, а при открытии она считывается
Записывается примерно такая запись:

type opts = record
 dt:TDateTime;  \\ Время ремайндера
 op:Boolean;  \\ Прозрачность фона вокаруг часов
 xy:TPoint;  \\ Положение на экране
 f:TFont;  \\ шрифт, которым отображаются часы
end;
var
o:opts

Bсе работает, все применяется, кроме шрифта. А шрифт - по умолчанию. Применяю таким вот образом:

label1.font:=o.f;

Помогите, пожалуйста.

PS^ Здесь могут быть ошибки синтаксиса - Дельфы под рукой нет.


 
Юрий Зотов ©   (2005-08-16 05:18) [1]

Сама Delphi ведь сохраняет фонты? Сохраняет. Значит, и нам можно.

Измените у формы любые свойства фонта, а потом просмотрите форму, как текст - и увидите, что и как там сохраняется.


 
Гриха   (2005-08-16 05:24) [2]

Спасибочки. Попробую...


 
Gydvin ©   (2005-08-16 06:45) [3]

function fonttostr(font:tfont):string;
     var
     s,p:string;
    begin
    if font.Style=[] then p:="[]";
  if font.Style=[fsBold] then p:="[fsBold]";
  if font.Style=[fsItalic] then p:="[fsItalic]";
  if font.Style=[fsBold,fsItalic] then p:="[fsBold,fsItalic]";
    s:=s+"name="+font.Name+"*"+
    "color="+colortostring(font.Color)+"*"+
    "Size="+inttostr(font.size)+"*"+
    "Height="+inttostr(font.Height)+"*"+"Style="+p;
   result:=s;

    end;

   function strtofont(s:string):tfont;
   var
   r:tstringlist;
   p:string;
    begin
    if s<>"" then begin
    result:=tfont.Create;
    r:=tstringlist.Create;
    r.Sorted:=false;
    while pos("*",s)>0 do begin
    r.Add(copy(s,1,pos("*",s)-1)) ;
    delete(s,1,pos("*",s)) ;
    end;
    if s<>"" then begin
     r.Add(s);
     s:="";
    end;

result.Name:=r.Values["name"];
result.Color:=stringtocolor(r.Values["color"]);
result.Height:=strtoint(r.Values["Height"]);
result.Size:=strtoint(r.Values["size"]);
p:= r.Values["style"];
  if p="[]" then result.Style:=[] ;
  if p="[fsBold]" then result.Style:=[fsBold];
  if p="[fsItalic]" then result.Style:=[fsItalic];
  if p="[fsBold,fsItalic]" then result.Style:=[fsBold,fsItalic];
//  result.Charset:=DEFAULT_CHARSET;
//  result.Pitch:=fpDefault;

    r.Free;
   // result.Free;
    end;

    end;


 
afanasic   (2005-08-16 08:56) [4]

Сохраняй отдельно FontName, Size и Bold... меньше головняков, а потом устанавливай...


 
Пип   (2005-08-16 09:02) [5]

Hierarchy

TObject
 
TPersistent
 
TGraphicsObject
 
TFont



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

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

Наверх




Память: 0.48 MB
Время: 0.061 c
1-1123829613
_Роман_
2005-08-12 10:53
2005.09.04
Компонент построения графиков в Delphi


14-1123759636
Павел
2005-08-11 15:27
2005.09.04
Delphi &amp; КПК


14-1123629715
SoftX
2005-08-10 03:21
2005.09.04
Опрос.


1-1124023984
_Seldon_
2005-08-14 16:53
2005.09.04
Про размещение класса в пакетах, DLL ках и т.д.


3-1122040445
sergg
2005-07-22 17:54
2005.09.04
Можно ли просматривать содержимое полей типа Memo в DBGide?