This is probably one of the lesser known Delphi and windows functions. The ability to have windows of shapes other than rectangular. This may sound difficult to do but in practice it is very easy. The only obvious place I can see any use in this (and even then its purely cosmetic) is an applications splash screen or about box. Please let me know if you ever find a different shaped window to be more useful than the standard rectangular one.
On to the implementation, to start with we need to make an array of points of all corners of the form (there can be as many as you want). Next we use the windows API call CreatePolygonRgn to get a handle to the region we have just defined. Finally we need to set this region the window we want to be that shape using another API call SetWindowRgn. To See this in effect create a new project and in the forms onCreate event have:
procedure TForm1.FormCreate(Sender: TObject); var Region: HRgn; Points: array [0..11] of TPoint; begin (* Define the points of a W shape *) Points := Point(0 , 0 ); Points := Point(50 , 0 ); Points := Point(180, 200 ); Points := Point(218, 100 ); Points := Point(256, 200 ); Points := Point(385, 0 ); Points := Point(435, 0 ); Points := Point(256, 300 ); Points := Point(218, 200 ); Points := Point(180, 300 ); (* Define the region *) Region := CreatePolygonRgn(Points, 10, ALTERNATE); (* Points: This a pointer to the previously defined points 10: The number of points ALTERNATE: The mode to be used for filling the polygon *) (* Set the window to have the above defined region *) SetWindowRgn(Handle, // The handle of our form Region, // The handle of our defined region True); // The window is to be redrawn now end;
When you run the program your window should look like this:
And that's all there is to it, now you just need to find a use for it, possibly in a splash screen.
We also have a tutorial explaining how to make a form the shape of a bitmap, again using Borland Delphi.