TColor в Integer
Пример:
var
i: integer;
...
i:= Image1.Canvas.Pixels[1,1];
:???:
Помогите преобразовать TColor в Integer. При попытке присваения происходит ошибка...
Пример:
var
i: integer;
...
i:= Image1.Canvas.Pixels[1,1];
:???:
enum TColor {clMin=-0x7fffffff-1, clMax=0x7fffffff};
Как Вы могли заметить TColor это два слова а не одно. Поэтому к Integer его можно привести только с потерями. Это Вам не С батенька.
enum TColor {clMin=-0x7fffffff-1, clMax=0x7fffffff};
Как Вы могли заметить TColor это два слова а не одно. Поэтому к Integer его можно привести только с потерями. Это Вам не С батенька.
Понятно, в таком случае можно и в массив из Integer[2] =)
Понятно, в таком случае можно и в массив из Integer[2] =)
Что за глупости? sizeof(TColor) = 4!
Понятно, в таком случае можно и в массив из Integer[2] =)
А зачем? Ведь есть двойное слово
DWORD represents a four-byte unsigned integer.
Unit
Types (Delphi) or WinTypes (C++)
Delphi syntax:
type DWORD = Longword;
C++ syntax:
typedef unsigned long DWORD;
Description
DWORD (double word) represents a four-byte unsigned integer. It is used primarily for Windows API calls. The C++ version is only defined on Windows.
Вот и фиг знает что делать... мне нужно с jpg работать...
Такое происходит только когда загружен *.jpg, а с *.bmp такой проблемы нет.
Вот и фиг знает что делать... мне нужно с jpg работать...
Ну так и используй DWORD. (см. предыдущий пост.)
Такое происходит только когда загружен *.jpg, а с *.bmp такой проблемы нет.
Так и должно быть. :)
Нужно поставить TImage прямо на форму(в крайнем случае на TBevel), и
i:= Canvas.Pixels[Image1.Left+1,Image1.Top+1];
C точки зрения TColor между Integer и DWORD никакой разницы нет.