Как сделать форму без caption?
Материал из DRKB
[править | править код]
Обычная форма:
TForm.Style := bsNone
Author: Song
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00461
MDIChild форма:
setWindowLong(handle, GWL_STYLE, getWindowLong(handle, GWL_STYLE) and not WS_CAPTION);
width := width + 1;
width := width - 1;
Author: rhf
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00462
{ Private Declaration }
procedure CreateParams(var Params: TCreateParams); override;
//...
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited Createparams(Params);
with Params do
Style := (Style or WS_POPUP) and not WS_DLGFRAME;
end;
Source: Взято из http://forum.sources.ru
ID: 00463
procedure TForm1.HideTitlebar;
var
Style: Longint;
begin
if BorderStyle = bsNone then Exit;
Style := GetWindowLong(Handle, GWL_STYLE);
if (Style and WS_CAPTION) = WS_CAPTION then
begin
case BorderStyle of
bsSingle,
bsSizeable: SetWindowLong(Handle, GWL_STYLE, Style and
(not (WS_CAPTION)) or WS_BORDER);
bsDialog: SetWindowLong(Handle, GWL_STYLE, Style and
(not (WS_CAPTION)) or DS_MODALFRAME or WS_DLGFRAME);
end;
Height := Height - GetSystemMetrics(SM_CYCAPTION);
Refresh;
end;
end;
procedure TForm1.ShowTitlebar;
var
Style: Longint;
begin
if BorderStyle = bsNone then Exit;
Style := GetWindowLong(Handle, GWL_STYLE);
if (Style and WS_CAPTION) <> WS_CAPTION then
begin
case BorderStyle of
bsSingle,
bsSizeable: SetWindowLong(Handle, GWL_STYLE, Style or WS_CAPTION or
WS_BORDER);
bsDialog: SetWindowLong(Handle, GWL_STYLE,
Style or WS_CAPTION or DS_MODALFRAME or WS_DLGFRAME);
end;
Height := Height + GetSystemMetrics(SM_CYCAPTION);
Refresh;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
HideTitlebar;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowTitlebar;
end;
Source: Взято с http://delphiworld.narod.ru
ID: 00464