Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Вниз

Макрос   Найти похожие ветки 

 
Goga ©   (2005-09-24 00:11) [0]

Если не трудно переведите мне это на DELPHI

#define RAS_GETBLUE(x) (((x) >> 16) & 0xff)
#define RAS_GETGREEN(x) (((x) >> 8) & 0xff)
#define RAS_GETRED(x) ((x) & 0xff)

#define RAS_BLUE(x) (((x) & 0xff) << 16)
#define RAS_GREEN(x) (((x) & 0xff) << 8)
#define RAS_RED(x) ((x) & 0xff)

#define RAS_ROWSIZE(hdr) \
((((hdr)->width * (hdr)->depth + 15) / 16) * 2)
#define RAS_ISRGB(hdr) \
((hdr)->depth == 24 || (hdr)->depth == 32)

#define RAS_ONES(n) \
(((n) == 32) ? 0xffffffffU : ((1 << (n)) - 1))


 
palva ©   (2005-09-24 00:21) [1]

На делфи это не переводится. Если очень надо использовать макросы, можно оставить это на макроязыке, но перед делфи-компиляцией запускать автономный сишный препроцессор (по-моему он называется cpp32.exe) Сами макросы, конечно же, надо переделывать.


 
DrPass ©   (2005-09-24 13:11) [2]

"В лоб" не переводится. А заменить аналогичным и подходящим по смыслу - легко

function RAS_GETBLUE(x: integer): integer;
begin
 result:=(x shr 15) and $ff;
end;

и т.д.
И даже ничего не придется менять в коде. А если используется Delphi 2005, то можно объявить ее как
function RAS_GETBLUE(x: integer): integer; inline;
- чтобы эффект был на 100% такой, как при использовании этих макросов


 
Goga ©   (2005-09-24 14:24) [3]

DrPass ©   (24.09.05 13:11) [2]
Спасибо


 
марсианин ©   (2005-09-24 20:08) [4]


> #define RAS_GETBLUE(x) (((x) >> 16) & 0xff)
> #define RAS_GETGREEN(x) (((x) >> 8) & 0xff)
> #define RAS_GETRED(x) ((x) & 0xff)
>
> #define RAS_BLUE(x) (((x) & 0xff) << 16)
> #define RAS_GREEN(x) (((x) & 0xff) << 8)
> #define RAS_RED(x) ((x) & 0xff)

микрософт уже придумал макросы на все случаи жизни:

см. RGB, GetRValue, GetGValue, and GetBValue



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.043 c
2-1127214444
FBI Agent
2005-09-20 15:07
2005.10.16
Print DBGrid


1-1127725727
Alex.Ru
2005-09-26 13:08
2005.10.16
Странный глюк в проекте CLX


2-1125868851
Pasha L
2005-09-05 01:20
2005.10.16
Скрыть процесс


2-1127120457
Новичок1
2005-09-19 13:00
2005.10.16
Народ посоветуйте как сделать остановку программы


14-1127844074
LordOfRock
2005-09-27 22:01
2005.10.16
Ульяновск





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский