Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2009, 19:32   #1
delphi_beginner
Пользователь
 
Регистрация: 24.02.2007
Сообщений: 22
Вопрос TForm & TImage & PNG & Прозрачность

Cейчас эксперементирую с неправильными формами и вот появилась проблемка - TImage с прозрачным png при перетаскивании формы на прозрачной канве остаётся кусок чего-либо что было до подложкой для формы при её создании (к примеру рабочий стол) и остаётся вместо прозрачности - мне же надо как-то перерисовывать чтобы не было видно куска экрана где раньше располагалась форма, при создании формы для её прозрачности используется:
Tfrm.OnCreate - Brush.Style:=bsClear;
TImage.Transparent:=True;

P.S. IDE D2009/D2010 PngImage по умолчанию.
Сделать скин для формы через регионы не предлагать т.к. получается по обводу ужасно обгрызенно и некрасиво, мне же надо красивый округлый интерфейс с размытыми или чёткими краями без погрызенностей и квадратных пикселей.
delphi_beginner вне форума Ответить с цитированием
Старый 17.09.2009, 19:36   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,455
По умолчанию

А что не нравиться transparentColor у формы ??
uberchel вне форума Ответить с цитированием
Старый 17.09.2009, 19:58   #3
delphi_beginner
Пользователь
 
Регистрация: 24.02.2007
Сообщений: 22
По умолчанию

Объяснил ведь выгрезенно получается при округлых или овальных углах.
delphi_beginner вне форума Ответить с цитированием
Старый 17.09.2009, 20:41   #4
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Вот тут два хороших примера:
http://desksoft.ru/index.php?forum=13&th=187
http://desksoft.ru/index.php?forum=13&th=47
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 17.09.2009, 21:12   #5
delphi_beginner
Пользователь
 
Регистрация: 24.02.2007
Сообщений: 22
По умолчанию

А попроще никак нельзя? А то вырисовывать в фотожопе с альфа-каналом а потом мутить ещё и прорисовку не улыбается
delphi_beginner вне форума Ответить с цитированием
Старый 17.09.2009, 22:44   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы думаете этот метод(ваш) проще?
он не родной для винды....вот и результат
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.09.2009, 07:52   #7
delphi_beginner
Пользователь
 
Регистрация: 24.02.2007
Сообщений: 22
По умолчанию

Я ничего не думаю, я ищу варианты
delphi_beginner вне форума Ответить с цитированием
Старый 19.09.2009, 08:46   #8
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

тебе нужно позрачность формы?

Вот нашел в инете.

Код:
function SetBlendWindow(hWnd : HWND; AlphaBlend : Byte) : LongBool;
type
  TSetLayeredWindowAttributes = function (hWnd : THandle; crKey : COLORREF; bAlpha : Byte; dwFlags : DWORD) : Boolean; stdcall;
var
  Old : longint;
  User32 : HMODULE;
  SetLayeredWindowAttributes : TSetLayeredWindowAttributes;
begin
  User32 := LoadLibrary('user32.dll');
    if (User32 <> 0) then
      begin
        Old := GetWindowLong(hWnd, GWL_EXSTYLE);
        SetWindowLong(hWnd, GWL_EXSTYLE, Old or $80000);
        SetLayeredWindowAttributes := GetProcAddress(User32, 'SetLayeredWindowAttributes');
        if Assigned(SetLayeredWindowAttributes) then SetLayeredWindowAttributes(hWnd, 0, AlphaBlend, LWA_ALPHA);
        FreeLibrary(User32);
      end;
  Result := False;
end;
использовать так:
Код:
SetBlendWindow(Handle, 240);
ZuBy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос UPDATE&INSERT&DELETE l0nley SQL, базы данных 5 17.07.2009 05:59
Просто не понимаю б чём проблема!!!!!!!(char* && index) artush1984 Общие вопросы C/C++ 12 30.05.2009 03:30
TImage & TLabel neizerth Общие вопросы C/C++ 7 15.02.2009 13:14
Проблема с MVC++ 2005 && 2008 на висте NetGod Софт 1 09.08.2008 17:14
Delphi & Access & Ole vodila БД в Delphi 0 15.07.2008 11:11