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

Вниз

Можно ли сохранять и считывать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
1-1124184754
Term
2005-08-16 13:32
2005.09.04
Принципы написания простенького браузера


14-1123512095
root
2005-08-08 18:41
2005.09.04
Очень уж щикотливая тема :-)


1-1123752286
.ruslan
2005-08-11 13:24
2005.09.04
Memo без использования “Enter”


9-1115819201
Кефир87
2005-05-11 17:46
2005.09.04
Простейшая линейная интерполяция...


14-1123221709
panov
2005-08-05 10:01
2005.09.04
О конференции "Начинающим"





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