Главная страница
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.027 c
15-1194319585
Учитель
2007-11-06 06:26
2007.12.09
Какие есть БЕСПЛАНТЫЕ программы по созданию видеоуроков?


15-1194738002
Kostafey
2007-11-11 02:40
2007.12.09
С днем рождения ! 11 ноября


2-1194902825
Blind Guardian
2007-11-13 00:27
2007.12.09
Пара вопросов о работе с динамической памятью


11-1179996237
=BuckLr=
2007-05-24 12:43
2007.12.09
ScrollBars в рантайм


15-1194734939
Johnmen
2007-11-11 01:48
2007.12.09
А где Digitman?