Sam*_*amH 17 delphi delphi-2007
制作delphi应用程序(delphi 2007 for win32)的最佳方法是全屏显示,删除应用程序边框并覆盖windows任务栏?
我正在寻找类似于当你点击F11时IE所做的事情.
我希望这对于用户来说是一个运行时选项,而不是我自己的设计时间决定.
正如在接受的答案中提到的那样
BorderStyle := bsNone;
Run Code Online (Sandbox Code Playgroud)
是这样做的一部分.奇怪的是,我E2010 Incompatible types: 'TFormBorderStyle' and 'TBackGroundSymbol'在使用该行时仍然遇到错误(已bsNone定义了另一种类型).
为了克服这个问题,我不得不使用:
BorderStyle := Forms.bsNone;
Run Code Online (Sandbox Code Playgroud)
Rod*_*ddy 23
嗯,这一直对我有用.看起来有点简单......
procedure TForm52.Button1Click(Sender: TObject);
begin
BorderStyle := bsNone;
WindowState := wsMaximized;
end;
Run Code Online (Sandbox Code Playgroud)
谷歌搜索发现以下其他方法:
(虽然我想我先尝试罗迪的方法)
procedure TSomeForm.FormShow(Sender: TObject) ;
var
r : TRect;
begin
Borderstyle := bsNone;
SystemParametersInfo
(SPI_GETWORKAREA, 0, @r,0) ;
SetBounds
(r.Left, r.Top, r.Right-r.Left, r.Bottom-r.Top) ;
end;
Run Code Online (Sandbox Code Playgroud)
FormStyle := fsStayOnTop;
BorderStyle := bsNone;
Left := 0;
Top := 0;
Width := Screen.Width;
Height := Screen.Height;
Run Code Online (Sandbox Code Playgroud)
private // in form declaration
Procedure WMGetMinMaxInfo(Var msg: TWMGetMinMaxInfo);
message WM_GETMINMAXINFO;
Procedure TForm1.WMGetMinMaxInfo(Var msg: TWMGetMinMaxInfo);
Begin
inherited;
With msg.MinMaxInfo^.ptMaxTrackSize Do Begin
X := GetDeviceCaps( Canvas.handle, HORZRES ) + (Width - ClientWidth);
Y := GetDeviceCaps( Canvas.handle, VERTRES ) + (Height - ClientHeight
);
End;
End;
procedure TForm1.Button2Click(Sender: TObject);
Const
Rect: TRect = (Left:0; Top:0; Right:0; Bottom:0);
FullScreen: Boolean = False;
begin
FullScreen := not FullScreen;
If FullScreen Then Begin
Rect := BoundsRect;
SetBounds(
Left - ClientOrigin.X,
Top - ClientOrigin.Y,
GetDeviceCaps( Canvas.handle, HORZRES ) + (Width - ClientWidth),
GetDeviceCaps( Canvas.handle, VERTRES ) + (Height - ClientHeight ));
// Label2.caption := IntToStr(GetDeviceCaps( Canvas.handle, VERTRES ));
End
Else
BoundsRect := Rect;
end;
Run Code Online (Sandbox Code Playgroud)