17.11.2019, 13:17 [+3 UTC]
в нашей команде: 3 977 чел. | участники онлайн: 8 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
16.11.2019, 20:23

Последний вопрос:
17.11.2019, 12:05
Всего: 150984

Последний ответ:
17.11.2019, 02:39
Всего: 259420

Последняя рассылка:
17.11.2019, 10:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
01.05.2019, 16:25 »
Duende
Если бы можно было ставить 5+ я бы поставил без раздумий. Большое спасибо за решение. Я, пытаясь решить эту задачу, пришёл к такому же ответу. Выражаю огромную благодарность) [вопрос № 195433, ответ № 278011]
09.07.2010, 21:06 »
Dimon4ik
Спасибо. Отличный ответ! Все замечательно работает. [вопрос № 179453, ответ № 262476]
10.10.2010, 13:29 »
Миронычев Виталий
Андрей Владимирович-просто великолепно-так классно оформлено Спасибо вам огромное!!! [вопрос № 180252, ответ № 263409]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Gluck
Статус: 7-й класс
Рейтинг: 873
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 565
puporev
Статус: Профессионал
Рейтинг: 306

Перейти к консультации №:
 

Консультация онлайн # 187672
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: Владимир (Посетитель)
Отправлена: 12.12.2013, 16:12
Поступило ответов: 1

Здравствуйте! У меня возникли сложности с таким вопросом: Требуется сохранить в ini файле настройки шрифта.
Я использую для чтения и хранения такую конструкцию

Чтение
  TabSheet1.Font.Color:=IniFile.ReadInteger('-----TabSheet1_Font_Color-----','8',TabSheet1.Font.Color);
  TabSheet1.Font.Size:=IniFile.ReadInteger('-----TabSheet1_Font_Size-----','9',TabSheet1.Font.Size);
  TabSheet1.Font.Style:=IniFile.ReadInteger('-----TabSheet1_Font_Style-----','10',TabSheet1.Font.Style); - ругается
  TabSheet1.Font.Name:=IniFile.ReadString('-----TabSheet1_Font_Name-----','11',TabSheet1.Font.Name);

Запись
  IniFile.WriteInteger('-----TabSheet1_Font_Color-----','8',TabSheet1.Font.Color);
  IniFile.WriteInteger('-----TabSheet1_Font_Size-----','9',TabSheet1.Font.Size);
  IniFile.WriteInteger('-----TabSheet1_Font_Style-----','10',Byte(TabSheet1.Font.Style));
  IniFile.WriteString('-----TabSheet1_Font_Name-----','11',TabSheet1.Font.Name);


В ини файле получаю
[-----TabSheet1_Font_Color-----]
8=255
[-----TabSheet1_Font_Size-----]
9=16
[-----TabSheet1_Font_Name-----]
11=Times New Roman
[-----TabSheet1_Font_Style-----]
10=0


Не получается прочитать настройки TabSheet1.Font.Style.

Пример записи свойств стиля брал из этого примера.
procedure TForm1.Button1Click(Sender: TObject);
var 
    IniFile : TIniFile;
begin 
    IniFile := TIniFile.Create('myIni.ini');
    with Edit1.Font do with IniFile do begin 
        Name := ReadString ('Font','Name','MS Mans Serif');
        Charset := ReadInteger('Font','Charset',RUSSIAN_CHARSET);
        Color := ReadInteger('Font','Color', clWindowText);
        Height := ReadInteger('Font','Height',-11);
        Size := ReadInteger('Font','Size',8);
        Style := TFontStyles(Byte(ReadInteger('Font','Style',0)));
    end;
    IniFile.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var 
    IniFile : TIniFile;
begin 
    IniFile := TIniFile.Create('myIni.ini');
    with Edit1.Font do with IniFile do begin;
        WriteString ('Font','Name', Name);
        WriteInteger('Font','Charset', Charset);
        WriteInteger('Font','Color', Color); 
        WriteInteger('Font','Height', Height);
        WriteInteger('Font','Size', Size);
        WriteInteger('Font','Style',Byte(Style));
    end;
    IniFile.Free;
end;

Подскажите в чем у меня проблема, как правильно прочитать настройки свойства стиля?

Состояние: Консультация закрыта

Ответ # 272599 от Лукьяненко Алексей Валериевич

Исправьте то, что у Вас выделено, на следующее:

TabSheet1.Font.Style:= TFontStyles(Byte(IniFile.ReadInteger('-----TabSheet1_Font_Style-----','10',Byte(TabSheet1.Font.Style))));


Консультировал: Лукьяненко Алексей Валериевич
Дата отправки: 12.12.2013, 17:50

5
Благодарю! То что нужно. Все прекрасно работает.
-----
Дата оценки: 12.12.2013, 18:35

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 187672
Тимошенко Дмитрий

# 1

= общий = | 12.12.2013, 16:18
Владимир:

Здравствуйте. А как ругается, конкретно? При компиляции, или при выполнении? И какая ошибка?
Если при компиляции, то могу предположить несовпадение типов - попробуйте так:
TabSheet1.Font.Style:=IniFile.ReadInteger('-----TabSheet1_Font_Style-----','10',byte(TabSheet1.Font.Style));

-----
Последнее редактирование 12.12.2013, 16:21 [неизвестный]

Лукьяненко Алексей Валериевич

# 2

= общий = | 12.12.2013, 16:19

И что же, собственно, мешает сделать как в примере?

Владимир
Посетитель

ID: 352040

# 3

= общий = | 12.12.2013, 16:48 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Ругается при компиляции - Unit1.pas(369): Incompatible types: 'TFontStyles' and 'Integer'
на строку - TabSheet1.Font.Style:=IniFile.ReadInteger('-----TabSheet1_Font_Style-----','10',byte(TabSheet1.Font.Style));

-----
Последнее редактирование 12.12.2013, 16:50 Владимир (Посетитель)

=====
Пользуюсь Delphi Enterprise Version7.

Владимир
Посетитель

ID: 352040

# 4

= общий = | 12.12.2013, 17:01 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Не могу к своему проекту подогнать. Записывать, записывает, а читать не получается. Ругается на стадии компиляции.

=====
Пользуюсь Delphi Enterprise Version7.

Лукьяненко Алексей Валериевич

# 5

= общий = | 12.12.2013, 17:06

но у Вас же в примере черным по белому написано:

Style := TFontStyles(Byte(ReadInteger('Font','Style',0)))


а вы пишете без преобразования. Верните преобразование на место и все будет хорошо

=====
Пользуюсь Delphi Enterprise Version7.

Владимир
Посетитель

ID: 352040

# 6

= общий = | 12.12.2013, 17:20 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Я не могу понять как сделать преобразование. В этом и проблема.

=====
Пользуюсь Delphi Enterprise Version7.

Лукьяненко Алексей Валериевич

# 7

= общий = | 12.12.2013, 17:25

Скопировать из примера, заменив ReadInteger(...) на то, что у Вас

=====
Пользуюсь Delphi Enterprise Version7.

Владимир
Посетитель

ID: 352040

# 8

= общий = | 12.12.2013, 17:36 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Можно код? Не понимаю.

=====
Пользуюсь Delphi Enterprise Version7.

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14637 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35