Текущий архив: 2002.07.15;
Скачать: CL | DM;
ВнизHexToInt Найти похожие ветки
← →
Board (2002-06-27 20:30) [0]Нужно такое проделать, но Дельфи ругается. Может подскажите?
← →
rhf (2002-06-27 20:38) [1]а в чем проблема?
← →
pusrg (2002-06-27 20:40) [2]Hex, это тоже число, но шестнадцатиричное.
Ф-ция IntToHex возвращает представление числа ввиде "шестнадцатиричной" строки и только.
Для обратного преобразования нужно перед этой строкой ставить знак $ и использовать ф-цию StrToInt, тоесть:
MyInt:=StrToInt(Format("$%s",[MyStr]));
P.S. Кстати этот вопрос недели полторы назад на форуме уже был.
← →
Board (2002-06-27 20:40) [3]Просто число 00FFCC нужно перевести в Integer. Т.е. HexToInt(...)
← →
McSimm (2002-06-27 20:43) [4]I := StrToInt("$00ffcc");
обрати внимание - не # а $
:)
← →
McSimm (2002-06-27 20:45) [5]смешно :),
когда я писал ответ я еще не видел >Board (27.06.02 20:40)
← →
Board (2002-06-27 21:06) [6]OK. Вот скажите, у меня программа раньше брала из файла номера цветов в 16-ричном виде и преобразовывала по способу, подсказанному вами выше. НО теперь проблема. Ясно, что 16-ричный формат такой $00FFCC, но чёрный цвет там $FFFFFFFF. Т.е. на 2 символа больше. Как мне теперь исправить этот код:
var
I, J: Integer;
begin
For I := 1 to image2.height do
For J := 1 to Image2.Width do
Image2.Canvas.Pixels[I,J] := StrtoInt(Copy(Memo2.Text, i*height+j+1, 7))
end;
Просто теперь получается надо брать по строкам начинающимися с $ и до строки заканчивающимся $.
← →
pusrg (2002-06-27 21:36) [7]В том случае, если у тебя в каждой строчке 1 цвет, не проще ли использовать:
Image2.Canvas.Pixels[I,J] := StrtoInt(Memo1.Lines[k]);
← →
B0ard (2002-06-27 21:39) [8]2pusrg
В том то и дело, что в Memo1 строки не столбиком, а сплошным текстом :-((
← →
McSimm (2002-06-28 12:35) [9]>но чёрный цвет там $FFFFFFFF.
Вообще-то это белый цвет.
Кроме того, для передачи цвета RGB достаточно 6ти - значного значения, т.е. $FFFFFF
Может проще найти ошибку в коде, который эти строки формирует?
Насколько я помню там была строка
S := S + "#"+inttohex(image1.canvas.pixels[J, I],6);
Подправь так:
S := S + "#"+inttohex($FFFFFF and image1.canvas.pixels[J, I],6);
Тогда все значения будут 6ти-значными
Страницы: 1 вся ветка
Текущий архив: 2002.07.15;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.015 c