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;
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
2010-08-26 05:59:09
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
2010-08-26 21:10:52
+6
A:
You can use TForms's TransparentColorValue property. In combination with BorderStyle=bsNone it will give you such shape.
Torbins
2010-08-26 10:00:54