![]() |
|
|
![]()
|
|
| docwar |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Маленький вопросец! =)
Запись данных о стиле шрифта, выбранном в FontDialog'е в переменную делаю так:
Но как записать значение этой переменной в ini-файл? Вот так не получается (не хочет ТФонтСтиль в АнстСтринг ковертировать)
|
||||
|
|||||
| Khan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 22.2.2006 Репутация: нет Всего: нет |
Посмотри здесь: http://forum.vingrad.ru/topic-119179/hl/%2...25B0/index.html
|
|||
|
||||
| Vyacheslav |
|
||||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Мда. Зачем так сложно Во первых у сетов есть операторы ввода << и вывода >> в поток
Для того, что бы их использовать достаточно записать
и строки из нулей и единиц у Вас в кармане Ну а кому не по вкусу нули и единицы можно получить и непосредственно строковый набор таким образом
Ну и восстановить его из строки
Добавлено @ 11:49 Соответственно имеем
-------------------- С уважением, Вячеслав Ермолаев |
||||||||||||
|
|||||||||||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Vyacheslav, спасибо!
Проблема возникла теперь в другом! Как только сделаю любые изменения с шрифтом - текст зачеркивается. Проверял параметры шрифта формы и memo - ошибок нет. Вот код, относящийся к передаче параметров из FontDialog -> Memo1:
|
|||
|
||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
И почему бы ему не зачеркиваться, если Вы ему прямо говорите : "зачеркнись"
Добавлено @ 13:18 Правда перед этим, Вы ему также говорите стань жирным, потом меняете на курсив, потом на подчекивание. Добавлено @ 13:24 Я бы все Ваши издевательства на фонтом изменил на код из хелпа
-------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Спасибо большое, но это все равно не решает проблемы... уже не знаю где косяк...
Помогите, пожалуйста, отладить код. При запуске получаю, что "" не имеет интовского значения!!! =( В этом коде пытаюсь сделать загрузку параметров шрифта из файла D:/nazvanie.ini с применением их для Memo1 и сохранение их (параметры) при закрытии в тот же файл (D:/nazvanie.ini).
|
|||
|
||||
| pandrew |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
Эта строка выкидывает исключение, если ss не содержит числа. Поставь try..catch, либо используй atoi(ss.c_st()); |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
pandrew, не могли бы вы подробнее ответить?
В хелпе смотрел - перевод не помог мне... =) |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Установил, что ошибка в этом коде:
Точную строку определить не удалось - ругается при любом считывании данных... =( :'( |
|||
|
||||
| Bima |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Ошибка происходит на строке
потому что на строках:
переменным ff, cc, ss присваевается Null !!! я так и не смог понять код. Вы создаете новый TStringList и пытаетесь вытащить название, цвет и размер компонента? или чего нибудь другого??? Компонент не визуальный, как можно из него вытащить размер и цвет??? -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
||||
|
|||||
| pandrew |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 27.3.2006 Репутация: 3 Всего: 3 |
Собственно неудивительно: 1)создается список (по умолчанию он пустой) 2)из него (из пустого) пытаются вытащить величину "Name" - естественно получают пусто 3)эту величину присваивают Memo1->Font->Name - этот фокус пройдет, но результат =пусто 4)присвоение Memo1->Font->Color=<пусто> выдаст исключение ибо StringToColor ждет по хелпу: The S parameter can be either the name of a built-in color constant such as 'clBtnFace', or the string representation of a valid TColor value such as '$02FF8800'. StringToColor returns the TColor value that corresponds to the S parameter.аналогично Memo1->Font->Size=lst->Values["Size"].ToInt(); даст исключение Правильная логика в рамках вашего алгоритма при входе: 1)создается список (по умолчанию он пустой) 2)загружаем список из файла LoadFromFile(const AnsiString FileName) 3)загружаем в Memo, интересующие нас параметры (контролируя их существование) 4)разрушаем список за ненадобностью при выходе: 1)создается список 2)формируем параметры в списке (используя свойства Memo) TStringList::Add("..") 3)выгружаем в файл: SaveToFile(const AnsiString FileName) 4)разрушаем список за ненадобностью Алгоритм типичной отладки: 1)устанавливаем цель: узнать точно, что и где не так (это в голове должно созреть): 2)компилируем проект 3)ставим точку останова на начало процедуры и запускаем 4)последовательно нажимаешь F8, изучая значения своих параметров (окно Watch отладчика) 5)как только что-то не так (не так как должно) - садимся и думаем (головой), где же мы напортачили 6)правим код - переходим к п. 1) |
||||
|
|||||
| Vyacheslav |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
docwar, у Вас проблемы с пониманием, что такое алгоритм и что следует применить в конкретном случае
Ну зачем Вы использовали вот этот код
который я дал для понимания механизма преобразлвания строки в сет. Этот код надо было использовать для чтения стиля из ini-файла, а не для его первоначальной инициализации Ведь проще и более правильнее было написать
А зачем здесь strStyle = GetSetProp(Memo1->Font, "Style", "[]") ? strStyle нигде не используется в дальнейшем
И не кажется, ли Вам , что использовать Label для вызова диалога настройки шрифта это выглядит весьма странно
И зачем Вы постояннн используете промежуточные переменные ff, cc, ss? Ведь в любой момент Вы можете непосредственно взять эту информацию из того же Memo1->Font непосредственно перед сохранением в ини-файл docwar, мне кажется, что Вы просто не совсем понимаете, что сами делаете. Судя по этому и другим топикам Вам следует для начала ознакомится с базовыми понятиями ООП и С++. Иначе в этом топике все сведется к тому же, что и в топике с гридом: кто-то не выдержит и напишет Вам весь код. Это кстати небольшой труд. Займет от силы минут 5. Но зачем это Вам? Надеюсь Ваша цель - научиться программировать, а не копировать чужой код. -------------------- С уважением, Вячеслав Ермолаев |
||||||||
|
|||||||||
| Bima |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Хотел бы написать пару строк на последние сообщения и просто обратится к автору программы.
Приминительно к последнему топику, а именно обращаюсь к Vyacheslav: зря вы так. Не все программируют на том уровне, что и вы (судя по колличеству заметок, которые вы здесь с легкостью оставляете). Приминительно к данной теме могу написать:
Для отладки программы, это самый легкий способ отследить переменную, если вставлять Break point (хотя конечно можно пользоваться и Debug window, но это на любителя)
Многие сюда обращаются, что бы воспользоваться советом, НО НЕКТОРЫЕ не настолько сильны в программировании, что бы понять схду код, который здесь напишут. (не про себя пишу
впринципе это наверно идельное решение для того, кто спрашивает. И я понимаю тех, для кого написать код за пять минут вызывает раздражение. Если допустим я начинаю помогать советом или кодом программы, то это не значит, что я буду тыкать мордой в монитор по поводу компьютерной безграмотности.
Инетресно, а как нучиться тонкостям языка, если не применять чужой код??? Иногда здесь я встречаю намного оптимизированный код, по сравнению со своим (который был написан давно). Естественно, я буду его использовать. Теперь автору заметки: Было бы неплохо если бы ты повнимательней читал советы. -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
||||||||
|
|||||||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Ну что вы. Я за четыре с лишним года оставил меньше 1300 сообщений. Вы за три месяца 190. Так что максимум через года полтора Вы спокойно переплюнете А вопрос этого топика был действительно не ординарен. Но к моему большому сожалению, интересные вопросы встречаются все реже. Это верно. Только "что бы воспользоваться советом" очень часто требуется иметь хотя бы определенный базовый уровень.
Наверное анализировать, разбирать его по косточкам и творчески применять в своем приложении, а не использовать "copy-past" -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Vyacheslav |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Короче, будем считать, что не выдержал я
-------------------- С уважением, Вячеслав Ермолаев |
||||||
|
|||||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |