02.06.2020, 01:59 [+3 UTC]
в нашей команде: 4 582 чел. | участники онлайн: 0 (рекорд: 21)

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

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

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.89 (25.04.2020)
JS-v.1.45 | CSS-v.3.39

Общие новости:
13.04.2020, 00:02

Форум:
31.05.2020, 09:51

Последний вопрос:
02.06.2020, 01:06
Всего: 152548

Последний ответ:
01.06.2020, 23:15
Всего: 260235

Последняя рассылка:
01.06.2020, 20:15

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

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

Наша кнопка:

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

Отзывы о нас:
12.09.2011, 17:53 »
Посетитель - 372683
Спасибо за ответ! Было бы не плохо увидеть программу на Java. [вопрос № 184000, ответ № 268204]

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

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

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

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

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 461
Delph
Статус: 3-й класс
Рейтинг: 318
puporev
Статус: Профессор
Рейтинг: 195

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

Консультация онлайн # 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.16575 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.89 от 25.04.2020
Версия JS: 1.45 | Версия CSS: 3.39