Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.025 c
14-47722
MJH
2002-06-06 17:20
2002.07.15
Уродцы....


1-47420
mazepa
2002-07-03 01:42
2002.07.15
Не могу открыть файл в дин. массив


1-47393
GrayFox
2002-07-01 19:02
2002.07.15
Работа с списками контактов в ICQ


14-47793
s@shka
2002-06-15 14:32
2002.07.15
OpenSSL в родном Delphi


3-47220
!Daemon
2002-05-31 01:15
2002.07.15
Как определить тип столбца.