Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Вот самая транспанентная форма.   Найти похожие ветки 

 
Кириешки ©   (2004-07-30 21:52) [0]

Вот самая транспанентная форма.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, ExtCtrls, CharLed, BevLab;

type
 TForm1 = class(TForm)
   Button2: TButton;
   procedure Button2Click(Sender: TObject);
 private
  procedure RebuildWindowRgn;
   procedure Resize; override;
 public
 constructor Create(AOwner: TComponent); override;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

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;

procedure TForm1.Resize;
begin
 inherited;
 // строим новый регион
 RebuildWindowRgn;
end;

constructor TForm1.Create(AOwner: TComponent);
begin
 inherited;
 // убираем сколлбары, чтобы не мешались
 // при изменении размеров формы
 HorzScrollBar.Visible:= False;
 VertScrollBar.Visible:= False;
 // строим новый регион
 RebuildWindowRgn;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;

end.


 
Огромное Кулясищще ©   (2004-07-30 21:55) [1]

Такое чувство, будто бы прозрачная форма или форма нестандартной формы - какая-то проблема.



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

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.033 c
3-1089839578
demonyator
2004-07-15 01:12
2004.08.15
Как сделать SQL запрос не чувствительным к регистру?


14-1091094994
Mellon
2004-07-29 13:56
2004.08.15
Народ помогите по компонентам пожайлуста


1-1091102890
Aleksandr.
2004-07-29 16:08
2004.08.15
Допустимы ли для нормальной работы такие действия с объектом?


1-1091321453
bigfoot
2004-08-01 04:50
2004.08.15
О запуске приложения


3-1090448400
Viner
2004-07-22 02:20
2004.08.15
ADO и MySQL