КОМПЬЮТЕРНЫЕ КУРСЫ "ПОИСК"
[Главная страница] [Delphi] [Контакты]

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
bShowCaption: TButton;
bHideCaption: TButton;
procedure bHideCaptionClick(Sender: TObject);
procedure bShowCaptionClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure HideCaption;
procedure ShowCaption;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.bHideCaptionClick(Sender: TObject);
begin
HideCaption;
end;
procedure TForm1.bShowCaptionClick(Sender: TObject);
begin
ShowCaption;
end;
procedure TForm1.HideCaption;
var
OldStyle : Integer;
begin
OldStyle := GetWindowLong(Handle, GWL_STYLE);
if (OldStyle and WS_CAPTION) = WS_CAPTION then
begin
LockWindowUpdate(Handle);
SetWindowLong(Handle, GWL_STYLE, OldStyle and not WS_CAPTION);
Height := Height - getSystemMetrics(SM_CYCAPTION) - 2 * getSystemMetrics(SM_CYBORDER);
Width := Width - 2 * getSystemMetrics(SM_CXBORDER);
Top := Top + getSystemMetrics(SM_CYCAPTION) + getSystemMetrics(SM_CYBORDER);
Left := Left + getSystemMetrics(SM_CXBORDER);
LockWindowUpdate(0);
end
end;
procedure TForm1.ShowCaption;
var
OldStyle : Integer;
begin
OldStyle := GetWindowLong(Handle, GWL_STYLE);
if (OldStyle and WS_CAPTION) <> WS_CAPTION then
begin
LockWindowUpdate(Handle);
SetWindowLong(Handle, GWL_STYLE, OldStyle or WS_CAPTION);
Height := Height + GetSystemMetrics(SM_CYCAPTION) + 2 * GetSystemMetrics(SM_CYBORDER);
Width := Width + 2 * GetSystemMetrics(SM_CXBORDER);
Top := Top - getSystemMetrics(SM_CYCAPTION) - GetSystemMetrics(SM_CYBORDER);
Left := Left - getSystemMetrics(SM_CXBORDER);
LockWindowUpdate(0);
end;
end;
end.
Исходный код здесь. Выполнен на Delphi XE.
Источник: codegearguru.com