tags:

views:

115

answers:

2

Many modern applications have irregularly shaped forms. What is the best way to do this in Delphi? Is it possible to do this without using any third party VCLs?

+7  A: 

yes is possible, you must use the SetWindowRgn function to set the new window region to draw.

try this code

procedure TForm1.FormCreate(Sender: TObject);
var
  region:HRGN;
begin
  region := CreateRoundRectRgn(ClientRect.left, ClientRect.top, ClientRect.right, ClientRect.bottom, 15, 15);
  SetWindowRgn(Handle, region, true);
end;

alt text

check theses links for more info

RRUZ
SetWindowRgn() is the old-school approach to shaping windows. On Win2000 and later, UpdateLayeredWindow() and SetLayeredWindowAttributes() (which are wrapped by the TForm.TransparentColor... and TForm.AlphaBlend... properties) are are the preferred method now.
Remy Lebeau - TeamB
+6  A: 

You can use TForms's TransparentColorValue property. In combination with BorderStyle=bsNone it will give you such shape.

Torbins