Вниз
Скачать: CL | DM;

Как сделать окно(форму) с кривыми границами   Найти похожие ветки 

← →
VAB   (2002-01-22 00:13) [0]

Как сделать так, чтоб форма была не квадратной, а круглой или произвольной формы?


← →
Pat ©   (2002-01-22 02:51) [1]

В любом FAQ...сам быстрее бы нашел, чем дождался тут ответа...

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
const W=36*pi/180;
var R,R1,R2: HRgn; X,Y,i:integer;
function S(a:integer;R:integer):integer;
begin
Result:=round(R*sin(W*a));
end;
function C(a:integer;R:integer):integer;
begin
Result:=round(R*cos(W*a));
end;
function GetStarReg(X,Y,R:integer):HRGN;
var P : array [0..4] of TPoint;
begin
P[0] := Point(X, Y-R);
P[1] := Point(X-S(4,R), Y-C(4,R));
P[2] := Point(X-S(8,R), Y-C(8,R));
P[3] := Point(X-S(2,R), Y-C(2,R));
P[4] := Point(X-S(6,R), Y-C(6,R));
Result := CreatePolygonRgn(P, 5, {WINDING}0);
end;
begin
X:=Width div 2;
Y:=Height div 2;
R:=GetStarReg(X,Y,100);
i:=1;
repeat
R1:=GetStarReg(X-S(i,120),Y-C(i,110),40);
CombineRgn(R,R,R1,RGN_OR);
inc(i,2);
until i>9;
R1:=GetStarReg(X,Y,30);
CombineRgn(R,R,R1,RGN_DIFF);
R1:=CreateEllipticRgn(3,3,Width-6,Height-6);
R2:=CreateEllipticRgn(20,10,Width-20 ,Height-10);
CombineRgn(R1,R1,R2,RGN_DIFF);
CombineRgn(R,R,R1,RGN_OR);
SetWindowRgn(Handle, R, True);

end;

end.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.008 c
1-18896
Song
2002-01-23 21:15
2002.02.07
Распечатать StringGrid!!!!


3-18692
Valentin2
2002-01-09 11:27
2002.02.07
Доброго Вам всем здоровья!


14-18972
Дремучий
2001-12-18 23:38
2002.02.07
boom.ru !!! boom-boom!


14-18969
Axel
2001-12-18 12:51
2002.02.07
May sombody help with Active Directory cleaning (W2KSrv)?


1-18810
programmer1
2002-01-18 13:35
2002.02.07
Где найти описание компонентов WordAplication и проч.




   Наверх