![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Mick Winder |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 15.10.2004 Где: Москва Рязанка Репутация: нет Всего: -1 |
Создаю ini-файл, куда записываю все параметры размеров формы, фон и шрифт таблицы...
Есть проблема записи в ini-файл параметров шрифта... Как решить проблему со шрифтами... Исходный код ниже: procedure TForm1.FormDestroy(Sender: TObject); var Ini: Tinifile; begin Ini:= TiniFile.Create(extractfilepath(paramstr(0))+'MyIni.ini'); Ini.WriteInteger('Size', 'Width', form1.Width); Ini.WriteInteger('Size', 'Height', form1.Height); Ini.WriteInteger('Position', 'X', form1.Left); Ini.WriteInteger('Position', 'Y', form1.Top); Ini.WriteInteger('Grid', 'ColorColums[0]', DBGridEh1.Columns.Items[0].Color); Ini.WriteInteger('Grid', 'ColorTitle[0]', DBGridEh1.Columns.Items[0].Title.Color); Ini.WriteInteger('Grig', 'FontTitle', DBGrideh1.Columns.Items[0].Title.Font); // проблема Ini.Free; end; procedure TForm1.FormCreate(Sender: TObject); var Ini: Tinifile; i: Integer; begin Ini:= TiniFile.Create(extractfilepath(paramstr(0))+'MyIni.ini'); Form1.Width:= Ini.ReadInteger('Size', 'Width', 100); Form1.Height:= Ini.ReadInteger('Size', 'Height', 100); Form1.Left:= Ini.ReadInteger('Size', 'X', 10); Form1.Top:= Ini.ReadInteger('Size', 'Y', 10); DBGridEh1.Columns.Items[0].Color:= Ini.ReadInteger('Grid', 'ColorColums[0]', clWhite); DBGridEh1.Columns.Items[0].Title.Color:= Ini.ReadInteger('Grid', 'ColorTitle[0]', clLtGray); for i:=1 to DBgridEh1.Columns.Count -1 do DBGrideh1.Columns.Items[i]Title.Font:= Ini.ReadInteger('Grid', 'FontTitle', 0); Ini.Free; end; |
|||
|
||||
| Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 1 Всего: 7 |
Да, тут действительно проблема... Именно так, как написано - не получится. Конфликт типов TFont и Integer. Думаю, надо сохранять для шрифта все его параметры (Name, Color, Height, Size, Style и т.д.), а потом их загружать. Собственно так должно получиться. --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
| Mick Winder |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 15.10.2004 Где: Москва Рязанка Репутация: нет Всего: -1 |
Попробовал написать...
Ini.WriteString('Grig', 'FontTitleStyle', DBGridEh1.Columns.Items[0].Title.Font.Style); или Ini.WriteInteger('Grig', 'FontTitleStyle', DBGridEh1.Columns.Items[0].Title.Font.Style); Все равно конфликт типов String или Integer и TFontStyle... Что делать? |
|||
|
||||
| Гость_Pakshin A. S. |
|
|||
|
Unregistered |
Отдельно прописываем все опции класса TFont. TFontStyle можно прописать через integer...
А вообще, по культуре, заведи отдельный файл (типизированный), тип которого будет состоять из патаметров Font'а... и писать отдельный файл, не ini... |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Alex, про Charset забыл.
В помощь:
-------------------- |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Значит DRKB подправим -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Я добавил, но это не пример, это кошмар
Я вечером нормальный сделаю и выложу -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Я бы сделал так:
Пользоваться так: GetObjectSettings (Button1.Font) - вовзращает инфу о Fontе кнопки в виде строки SetObjectSettings (Button1.Font, s) - Font кнопки грузится из строки s
-------------------- С уважением, г-н Посол. |
||||
|
|||||
| Mick Winder |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 15.10.2004 Где: Москва Рязанка Репутация: нет Всего: -1 |
Спасибо всем! То, что вы здесь прописали, для меня очень полезно... И я попробую реализовать все это в своей проге...
А пока я решил немного "поиграть", чтобы понять суть работы... Написал следующий небольшой кодик: procedure TForm1.FormDestroy(Sender: TObject); var Ini: Tinifile; begin Ini.WriteInteger('Grid', 'ColorTitle[0]', DBGridEh1.Columns.Items[0].Title.Color); Ini.WriteInteger('Grig', 'FontTitleColor[0]', DBGridEh1.Columns.Items[0].Title.Font.Color); Ini.Free; end; procedure TForm1.FormCreate(Sender: TObject); var Ini: Tinifile; i: Integer; begin DBGridEh1.Columns.Items[0].Title.Color:= Ini.ReadInteger('Grid', 'ColorTitle[0]', clLtGray); DBGrideh1.Columns.Items[0].Title.Font.Color:= Ini.ReadInteger('Grid', 'FontTitleColor[0]', 0); Ini.Free; end; Мои действия: 1. Открываю свою программу. На форме таблица. Заголовок первого столбца окрашен в серый цвет (сlLtGreen), наименование заголовка в черный цвет (0 или clBlack). 2. Меняю цвет загловка в желтый цвет, наименование заголовка в синий. 3. Закрываю программу. Результат при повторном открытии: Цвет заголовка - желтый, а цвет наименования заголовка - ...черный, хотя по идее должно быть синим... Почему? Что за фигня? Сделал пошаговую отладку и параллельно заглядывал в ini-файл... При закрытии проги все последние настройки записываются в файл как положено, а при загрузке значение FontTitleColor стирается и присваивается значение 0 (черный цвет)... Nie razumiem! |
|||
|
||||
| Mick Winder |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 15.10.2004 Где: Москва Рязанка Репутация: нет Всего: -1 |
Огромное спасибо!!! Всё получилось! |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Я сделал так:
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
|
|||
|
||||
| Mick Winder |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 15.10.2004 Где: Москва Рязанка Репутация: нет Всего: -1 |
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |