Прозрачность

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Вот ещё один способ сделать форму прозрачной:

Код: Выделить всё

constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
  // убираем сколлбары, чтобы не мешались
  // при изменении размеров формы
  HorzScrollBar.Visible:= False;
  VertScrollBar.Visible:= False;
  // строим новый регион
  RebuildWindowRgn;
end;
procedure TForm1.Resize;
begin
  inherited;
  // строим новый регион
  RebuildWindowRgn;
end;
procedure TForm1.RebuildWindowRgn;
var
  FullRgn, Rgn: THandle;
  ClientX, ClientY, I: Integer;
begin
  // определяем относительные координаты клиенской части
  ClientX:= (Width - ClientWidth) div 2;
  ClientY:= Height - ClientHeight - ClientX;
  // создаем регион для всей формы
  FullRgn:= CreateRectRgn(0, 0, Width, Height);
  // создаем регион для клиентской части формы
  // и вычитаем его из FullRgn
  Rgn:= CreateRectRgn(ClientX, ClientY, ClientX + ClientWidth, ClientY +
ClientHeight);
  CombineRgn(FullRgn, FullRgn, Rgn, rgn_Diff);
  // теперь добавляем к FullRgn регионы каждого контрольного элемента
  for I:= 0 to ControlCount -1 do
    with Controls[I] do begin
      Rgn:= CreateRectRgn(ClientX + Left, ClientY + Top, ClientX + Left +
Width, ClientY + Top + Height);
      CombineRgn(FullRgn, FullRgn, Rgn, rgn_Or);
    end;
  // устанавливаем новый регион окна
  SetWindowRgn(Handle, FullRgn, True);
end;
end.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

Колядин Максим, читать с конца начинаем? 1 страницу посмотрите
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Ой... Прошу прощения за проявленную невнимательность.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
Anticler
Сообщения: 30
Зарегистрирован: 28 мар 2007, 22:04

а может кто знает как сделать полупрозрачность
Yura_ua
Сообщения: 63
Зарегистрирован: 07 дек 2006, 17:52

Anticler писал(а):полупрозрачность
Выставляеш у формы свойства
AlphaBlending=true
AlphaBlendValue - от 0 до 255
Аватара пользователя
Anticler
Сообщения: 30
Зарегистрирован: 28 мар 2007, 22:04

Yura_ua писал(а):Выставляеш у формы свойства
AlphaBlending=true
AlphaBlendValue - от 0 до 255
Я имею ввиду по рисунку или хотябы градиент полупрозрачности (непрозрачность мягко переходящая в прозрачность)
Ответить