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?
Asked
Active
Viewed 2,837 times
1
-
3I don't believe the claim in your first sentence. – Rob Kennedy Aug 26 '10 at 07:58
-
odd thing is, since Windows XP introduced themes, actually most windows have rounded corners (done with SetWindowRgn bij the themes service) – Stijn Sanders Aug 30 '10 at 08:12
2 Answers
9
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;
check theses links for more info
- Creating Shaped Forms (using a bitmap image)
- Is it possible to create forms with shapes other than the standard rectangular shape in Windows? (using an poligon)

RRUZ
- 134,889
- 20
- 356
- 483
-
6SetWindowRgn() 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 Aug 26 '10 at 21:10
8
You can use TForms's TransparentColorValue property. In combination with BorderStyle=bsNone it will give you such shape.

Torbins
- 2,111
- 14
- 16