Using User137 suggestion I quickly put this together and it seems to work for Windows.
procedure TForm1.Button1Click(Sender: TObject);
var
rcWind: TRect;
begin
rcWind.Left:= 0;
rcWind.Right:= 0;
rcWind.Top:= 0;
rcWind.Bottom:= 0;
GetWindowRect(HANDLE, &rcWind);
Label1.Caption:= IntToStr(rcWind.Right-rcWind.Left);
end;
Edit: It looks like you only need to initialize rcWind and the values are reset by GetWindowRect.
wow you had saved my day, Thanx a lot.

But the above code works when the following settings are.
BorderStyle := bsSizeable, bsSizeToolWindow.
:= bsNone was already working with default settings.
:= bsDialog, bsToolWindow not worked at all
When the width of Form was 320 - for first case it returns 336 and for last case it returns 326.
Any workaround for this, as i don't need toolwindow but
bsDialog is required.