Главная страница
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.024 c
1-1190293681
Lpnt
2007-09-20 17:08
2007.12.09
Отображение данных.


11-1179414957
Vladimir Kladov
2007-05-17 19:15
2007.12.09
Версия 2.61


15-1194604829
Cerberus
2007-11-09 13:40
2007.12.09
Удаленное ведение проекта.


15-1194939406
TYuD
2007-11-13 10:36
2007.12.09
Не всегда получается отладка dll.


15-1194608090
Piter
2007-11-09 14:34
2007.12.09
Пятница? Вася Пупкин?