16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:ハートのフォーム"
この発言は #00457 Quiri さんのハートのフォーム に対するコメントです
この発言に対し以下のコメントが寄せられています
#00462 謎の全知師 さん RE^2:ハートのフォーム
//リージョン使用例。ハートの形のフォームを作る。
謎の全知師さん、いつもどうもありがとうございます。
リージョンのことよく解っていないもので...(^^;)
修正しましたので再度アップします。
Quiri (JAC01052)
procedure TForm1.FormCreate(Sender: TObject);
var
size:integer;
Rgn1,Rgn2,Rgn3: HRGN;
begin
if Height>Width then
size:=Width div 4
else
size:=Height div 4;
Rgn1:=CreateEllipticRgn(-(2*size),-(2*size),4*size,4*size);
Rgn2:=CreateRectRgn(2*size,size,4*size,4*size);
combinergn(Rgn1,Rgn1,Rgn2,1);
Rgn2:=CreateEllipticRgn(0,-(2*size),6*size,4*size);
Rgn3:=CreateRectRgn(0,size,2*size,4*size);
combinergn(Rgn2,Rgn2,Rgn3,1);
combinergn(Rgn1,Rgn1,Rgn2,2);
Rgn2:=CreateEllipticRgn(0,0,2*size,2*size);
Rgn3:=CreateRectRgn(0,0,size,size);
combinergn(Rgn2,Rgn2,Rgn3,1);
combinergn(Rgn1,Rgn1,Rgn2,2);
Rgn2:=CreateEllipticRgn(2*size,0,4*size,2*size);
Rgn3:=CreateRectRgn(3*size,0,4*size,size);
combinergn(Rgn2,Rgn2,Rgn3,1);
combinergn(Rgn1,Rgn1,Rgn2,2);
Rgn2:=CreateEllipticRgn(-(size div 2),0,5*size div 2 ,4*size);
Rgn3:=CreateRectRgn(size,0,2*size,size);
combinergn(Rgn2,Rgn2,Rgn3,1);
combinergn(Rgn1,Rgn1,Rgn2,2);
Rgn2:=CreateEllipticRgn(3*size div 2,0,9*size div 2,4*size);
Rgn3:=CreateRectRgn(2*size,0,3*size,size);
combinergn(Rgn2,Rgn2,Rgn3,1);
combinergn(Rgn1,Rgn1,Rgn2,2);
SetWindowRgn(Handle, Rgn1, True);
DeleteObject(Rgn2);
DeleteObject(Rgn3);
end;
Original document by Quiri 氏 ID:(JAC01052)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|