Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Transparentcolor, Сделать указанный цвет прозрачным
TRT
Вставить ник
сообщение 12:03:2008, 23:04
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 14
Регистрация: 12:10:2006
Пользователь №: 7 079



Репутация: - 0 +


Подскажите пожалуйста как сделать указанный мною цвет прозрачным через системную библиотеку user32.dll с помощью таких функций:

const
TransparentColor = clLime;
TransparentPercent = 80;
WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_COLORKEY = 1;
LWA_ALPHA = 2;
GWL_EXSTYLE = (-20);

function SetLayeredWindowAttributes(hwnd: HWND; crKey: TColor; bAlpha: BYTE; dwFlags: DWORD): Boolean;
function GetWindowLong(Wnd: HWnd; Index: Integer): Longint;
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint;

SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED)
SetLayeredWindowAttributes(Handle, TransparentColor,(255 * TransparentPercent) / 100, LWA_COLORKEY)

Сообщение отредактировал TRT - 12:03:2008, 23:05
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 1)
TRT
Вставить ник
сообщение 13:03:2008, 12:55
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 14
Регистрация: 12:10:2006
Пользователь №: 7 079



Репутация: - 0 +


Вопрос снимается rolleyes.gif проблему решил таким образом:

const
TRANSPARENT_COLOR = clLime;
WS_EX_LAYERED = $80000;
GWL_EXSTYLE = (-20);
LWA_COLORKEY = 1;
LWA_ALPHA = 2;

function SetLayeredWindowAttributes(hwnd: HWND; crKey: TColor; bAlpha: byte; dwFlags: DWORD): BOOL; stdcall;
external 'user32.dll';

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Color := TRANSPARENT_COLOR;
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, TRANSPARENT_COLOR, 0, LWA_COLORKEY);
end;
Подняться вверх 
 
Сообщение #2


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 5:07:2008 - 22:32
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net