Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2008, 22:22   #1
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию IntToHex ошибка

ColorDialog1.CustomColors[0]:=IntToHex(IniF.ReadInteger('Main', 'Color',1558314)); компилятор выдает There is no overloaded version of 'IntToHex' that can be called with these arguments.
Что не так?

Все понял выставил кол-во цифр другая теперь ошибка

Код:
procedure TForm1.N10Click(Sender: TObject);
var IniF: TIniFile;
begin
  IniF:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Main.ini');
  ColorDialog1.CustomColors[1]:=IntToHex(IniF.ReadInteger('Main','Color',15583141),6);
   If ColorDialog1.Execute then
   begin
     IniF.WriteInteger('Main','Color',ColorDialog1.Color);
     Form2.Color:=ColorDialog1.Color;
   end;
end;
Project .... raised exception class EStringlistError with message 'Out of Bounds[1]'.
Process stopped. Use Step or Run to continue.

Это еще что?

Последний раз редактировалось Airou; 20.05.2008 в 22:33.
Airou вне форума Ответить с цитированием
Старый 20.05.2008, 23:00   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Для ini файла такого вида:
Цитата:
[Colors]
ColorA=FBBA9B
ColorB=FBBA9B
ColorC=B5BC49
ColorD=BCF6F5
ColorE=6276DB
ColorF=34F8E6
ColorG=1ECB23
ColorH=1ECB23
ColorI=1ECB23
ColorJ=6AA69E
ColorK=6AA69E
ColorL=FEFFF4
ColorM=FEFFF4
ColorN=FDC1AB
ColorO=FDC1AB
ColorP=FDC1AB
Работает такой код:
Код:
for i:=65 to 80 do
  IniFile.WriteString('Colors','Color'+Char(i),
    ColorDialog1.CustomColors.Values['Color'+Char(i)]);
Обрати внимание как идет нумерация в массиве CustomColors.Values: 'ColorA', 'ColorB' и т.д.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 21.05.2008, 12:20   #3
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

Чего-то туговато доходит.
Почему с 65 и до 80?
И чего мы добьемся этой строчкой ColorDialog1.CustomColors.Values['Color'+Char(i)]);
ее походу продолжить надо наподобии ColorDialog1.CustomColors.Values['Color'+Char(i)]):='FDC1AB';

Я просто хочу чтобы в секции дополнительных цветов при загрузке программы появлялся сохраненный в ини файле цвет.
Airou вне форума Ответить с цитированием
Старый 21.05.2008, 15:59   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Я немного перепутал, скопировал не из той процедуры, это запись ini, а не чтение, я потом заметил но не исправлял, думал ты и так поймешь. Тем более это не столь важно, INI тут вообще боком.

Объясняю популярно:
Обращение к текущему (активному) цвету в ColorDialog:
Код:
ColorDialog1.Color:=$FF0000;
Обращение к дополнительным (Custom) цветам в ColorDialog:
Код:
ColorDialog1.CustomColors.Values['ColorA']:=$0000FF;
ColorDialog1.CustomColors.Values['ColorB']:=$00FF00;
//и так далее до ColorP, всего их 16
Почему с 65 и до 80? Потому что нужны заглавные английские буквы A-P они как раз идут с 65 по 80. Функция Char(i) как раз их и возвращает. Прибавляем их к строке 'Color' и теперь можно присваивать цвет:
Код:
ColorDialog1.CustomColors.Values['Color'+Char(i)]:=IniFile.ReadString(
  'Colors','Color'+Char(i),IntToHex(0,6));
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 21.05.2008, 22:20   #5
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

Спасибо, разжевал).
Airou вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем ошибка!!! juden Общие вопросы Delphi 12 10.03.2008 08:53
ОШИБКА YLIANOVA83 Microsoft Office Word 5 07.03.2008 15:02
Что за ошибка??? Rembo Свободное общение 2 08.01.2008 14:34
в чем ошибка? Lonix Общие вопросы Delphi 2 24.03.2007 09:41