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

Вниз

Рамка вокруг региона????   Найти похожие ветки 

 
tytus ©   (2007-09-20 12:51) [0]

Доброго дня Всем!
Что-то не получается сия рамка. Вот что делаю:
 private
   { Private declarations }
   Region:HRGN;
   RgnArray:array[0..3]of TPoint;
   procedure WMNCHitTest(var Message:TWMNCHitTest);message WM_NCHITTEST;

procedure TMainFm.WMNCHitTest(var Message:TWMNCHitTest);
begin
Message.Result:=HTCAPTION;
end;

procedure TMainFm.FormCreate(Sender: TObject);
var
 r:TRect;
begin
Windows.GetClientRect(Handle,r);
RgnArray[0]:=Point(0,0);
RgnArray[1]:=Point(200,0);
RgnArray[2]:=Point(200,200);
RgnArray[3]:=Point(0,200);
Region:=CreatePolygonRgn(RgnArray,4,ALTERNATE);
SetWindowRgn(Handle,Region,true);
end;

procedure TMainFm.FormPaint(Sender: TObject);
begin
Canvas.Brush.Color:=clRed;
FrameRgn(Canvas.Handle,Region,Canvas.Brush.Handle,2,2);
end;

И как нарисовать рамку - ну никак не получается!!!!
??


 
DiamondShark ©   (2007-09-20 13:15) [1]


> И как нарисовать рамку - ну никак не получается!!!!

А если нарисовать рамку на один пиксел с каждой стороны меньше, чем регион?


 
tytus ©   (2007-09-20 13:22) [2]

>DiamondShark ©   (20.09.07 13:15) [1]
да вааще не рисует НИКАК!!!
ктому-же можно задать шир. и выс. побольше в FrameRgn...


 
DiamondShark ©   (2007-09-20 13:25) [3]

А, блин. Торможу.

RTFM, конечно.

After a successful call to SetWindowRgn, the system owns the region specified by the region handle hRgn. The system does not make a copy of the region. Thus, you should not make any further function calls with this region handle. In particular, do not delete this region handle. The system deletes the region handle when it no longer needed.


 
Lacmus ©   (2007-09-20 13:31) [4]



procedure TForm66.FormPaint(Sender: TObject);
var
 Region: HRgn;
begin
 Region := CreateRectRgn(0, 0, 0, 0);
 if GetWindowRgn(Handle, Region) <> ERROR then try
   Canvas.Brush.Color:=clRed;
   FrameRgn(Canvas.Handle,Region,Canvas.Brush.Handle,2,2);
 finally
   DeleteObject(Region)
 end
end;



 
tytus ©   (2007-09-20 13:44) [5]

>DiamondShark ©   (20.09.07 13:25) [3]
о сем и я ужо прочитал... сенкс.

>Lacmus ©   (20.09.07 13:31) [4]
свершилось!


 
{RASkov} ©   (2007-09-20 17:43) [6]

> procedure TForm66.FormPaint(Sender: TObject);
> var
> Region: HRgn;
> begin
> Region := CreateRectRgn(0, 0, 0, 0);
> if GetWindowRgn(Handle, Region) <> ERROR then try
>   Canvas.Brush.Color:=clRed;
>   FrameRgn(Canvas.Handle,Region,Canvas.Brush.Handle,2,2);
> finally
>   DeleteObject(Region)
> end
> end;

procedure TForm66.FormPaint(Sender: TObject);
var
Region: HRgn;
begin
Region := CreateRectRgn(0, 0, 0, 0);
try
 if GetWindowRgn(Handle, Region) <> ERROR then begin
  Canvas.Brush.Color:=clRed;
  FrameRgn(Canvas.Handle,Region,Canvas.Brush.Handle,5,5);
 end;
finally
  DeleteObject(Region);
end
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
11-1180896008
=BuckLr=
2007-06-03 22:40
2007.12.09
Защита участка RichEdit от изменения


2-1194849387
webpauk
2007-11-12 09:36
2007.12.09
Запись дерева в таблицу


15-1194591394
Gydvin
2007-11-09 09:56
2007.12.09
Траблы с сетевым сканером


15-1194867744
@!!ex
2007-11-12 14:42
2007.12.09
Проект вылетает


2-1194847372
Layner
2007-11-12 09:02
2007.12.09
Запуск приложения от другого пользователя и выход(logout) из XP