Author: Tomas Rutkauskas How to draw on the frame of a TForm Answer: Create a message handler for the Windows Message WM_NCPAINT message. The following example paints a 1 pixel red border around the frame of the form. 1 type 2 TForm1 = class(TForm) 3 private 4 { Private declarations } 5 procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT; 6 public 7 { Public declarations } 8 end; 9 10 var 11 Form1: TForm1; 12 13 implementation 14 15 {$R *.DFM} 16 17 procedure TForm1.WMNCPaint(var Msg: TWMNCPaint); 18 var 19 dc: hDc; 20 Pen: hPen; 21 OldPen: hPen; 22 OldBrush: hBrush; 23 begin 24 inherited; 25 dc := GetWindowDC(Handle); 26 msg.Result := 1; 27 Pen := CreatePen(PS_SOLID, 1, RGB(255, 0, 0)); 28 OldPen := SelectObject(dc, Pen); 29 OldBrush := SelectObject(dc, GetStockObject(NULL_BRUSH)); 30 Rectangle(dc, 0, 0, Form1.Width, Form1.Height); 31 SelectObject(dc, OldBrush); 32 SelectObject(dc, OldPen); 33 DeleteObject(Pen); 34 ReleaseDC(Handle, Canvas.Handle); 35 end;