![]() |
|
|
![]()
|
|
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
У меня проблема. Необходимо значение цвета сохранить в ini файл. Выводится ошибка: Cannot convert AnsiString to Tcolor.(Это при использовании ReadString и WriteString). Перепробовал все: и integer и float, но там выскакивают ошибки еще похлеще. Подскажите как быть (только не говорите что надо работать с реестром или конфигом, у меня уже вся прога на этом ini файле, а вот с цветом столкнулся впервые).
|
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
Graphics.hpp:
-------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Вопрос. Куда это вставлять и как это связать с TIniFile?
|
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
Ответ: немного подумать. Что такое перечисление?
-------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Ну я поставил куда надо. Только теперь как записать запрос на запись и на чтение.
Если писать Write/Read Integer выводятся ошибки: [C++ Error] Unit2.cpp(33): E2034 Cannot convert 'char *' to 'int' [C++ Error] Unit2.cpp(33): E2342 Type mismatch in parameter 'Default' (wanted 'int', got 'char *') [C++ Warning] Unit2.cpp(33): W8018 Assigning int to Graphics::TColor Если Write/Read String ,то: [C++ Warning] Unit2.cpp(33): W8018 Assigning AnsiString to Graphics::TColor [C++ Error] Unit2.cpp(33): E2034 Cannot convert 'AnsiString' to 'Graphics::TColor' Как быть? |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
нде... и что ты куда поставил, интересно мне знать?.. покажи, кстати, код... -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Использовались компоненты TMS Components Pack Это сообщение отредактировал(а) miklash90 - 2.4.2006, 17:29 |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
AdvColorSelector1->SelectedColor имеет тип TColor? Тебе нужно записать это значение в ini-файл? Зачем ты подставил то, что я написал, в начало файла? Почему ты используешь метод WriteString?
-------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Мне надо записать значение в ini файл.
Да. AdvColorSelector1->SelectedColor имеет тип TColor. А как нужно делать? |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
miklash90, т.к. TColor - это перечисление, значит, значения этого типа могут быть восприняты как целочисленные. Так почему же ты используешь метод WriteString?
-------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Ну я понял что надо использовать не WriteString, но используя WriteInteger выпадают ошибки перечисленные выше. Так как записать запрос? Может я не туда вставил
enum TColor {clMin=-0x7fffffff-1, clMax=0x7fffffff}; или чего-то не договариваю. |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
miklash90, нужно использовать WriteInteger. Покажи, как ты это делаешь.
-------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
И выскакивают: [C++ Error] Unit2.cpp(32): E2034 Cannot convert 'char *' to 'int' [C++ Error] Unit2.cpp(32): E2342 Type mismatch in parameter 'Default' (wanted 'int', got 'char *') [C++ Warning] Unit2.cpp(32): W8018 Assigning int to TColor |
|||
|
||||
| BreakPointMAN |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
Естественно, выскакивают!
Смотрим, что пишет компилятор. Ага, ошибка в 32-ой строке! Что у нас там? А вот что:
Ты смотрел, какие параметры должны быть у функции ReadInteger? Читаем справку:
Третьим параметром должен быть параметр типа int, ты подставляешь строку "Def", ее тип - char*. Именно поэтому компилятор говорит:
что означает: я не могу использовать char* вместо int! Хочу int! Это сообщение отредактировал(а) BreakPointMAN - 2.4.2006, 18:16 -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
||||||
|
|||||||
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Здесь мне немного непонятно ( int Default ). Что сюда надо вставлять вместо "Def" (вообще и для моего случая)? Тут просто вот это третье значение в скобках непонятно.
|
|||
|
||||
| BreakPointMAN |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
miklash90, в справке же все написано!
что означает:
Так какой цвет ты хочешь возвращать, если вдруг в ini-файле про него ничего нет? -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
||||
|
|||||
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Спасибо!!! Все без проблем работает. Только выскакивает
Warning [C++ Warning] Unit2.cpp(32): W8018 Assigning int to Graphics::TColor А так все сохраняет и загружает. В 3-е поле ввел 0000000. Было б у меня 100 постов обязательно отдал бы респект. Наберу, проголосую!!! Это сообщение отредактировал(а) miklash90 - 2.4.2006, 18:32 |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 6 Всего: 24 |
Это можно обойти явным приведением типа, как-то так:
Можешь еще посмотреть справку по функциям ColorToString, StringToColor, IdentToColor, ColorToIdent. Кстати, у тебя есть еще одно большое упущение в программе... если создал что-то с помощью new, значит это надо удалить с помощью delete... -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| miklash90 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Спасибо. Все понял.
|
|||
|
||||
![]()
|
| Правила форума "С++ 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. |