怎樣把一個form在程式開始運行時自動最大化? |
答題得分者是:cashxin2002
|
chrislao
初階會員 發表:86 回覆:69 積分:36 註冊:2002-12-28 發送簡訊給我 |
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
|
hkstm
一般會員 發表:23 回覆:31 積分:10 註冊:2002-03-15 發送簡訊給我 |
|
chrislao
初階會員 發表:86 回覆:69 積分:36 註冊:2002-12-28 發送簡訊給我 |
|
hkstm
一般會員 發表:23 回覆:31 積分:10 註冊:2002-03-15 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls; type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure OnMessage(var Msg: Tmsg; var Handled: Boolean);
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm}
procedure TForm1.OnMessage(var Msg: Tmsg; var Handled: Boolean);
begin
//关闭最小化
if msg.wParam =$8 then handled:=true;
//关闭中间化
if msg.wParam =$9 then handled:=true;
//关闭标题右键
if msg.wParam=$2 then
if msg.hwnd=handle then handled:=true;
inherited;
end; procedure TForm1.FormCreate(Sender: TObject);
begin
//开始最大化
windowState :=wsMaximized;
application.OnMessage :=OnMessage;
end; end. try~~
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
|
chrislao
初階會員 發表:86 回覆:69 積分:36 註冊:2002-12-28 發送簡訊給我 |
|
chrislao
初階會員 發表:86 回覆:69 積分:36 註冊:2002-12-28 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 其實您所提的問題以上各位前輩們都有講解到了﹒小弟將其整理一下﹐再回答您最后一個問題﹕ 在設計時期可用Form中的屬性設定來控制視窗的顯示﹐在執行時期可用程式碼設定Form中的屬性來控制視窗的顯示﹒ 設計時期(做到您需要的效果)﹕
Form的WindowState屬性值﹕設為wsMaximized(最大化視窗)
Form的BorderIcon屬性值﹕只將其中的biSystemMenu(關閉視窗的按鈕﹐就是那個X)設為True﹐其它都為False﹐您所指的不容許用戶中間化Form﹐其實是和biMaximize有關聯﹐當您把此屬性值設為True時﹐From在Run的時候就可以做中間化和最大化之間的轉換(也就是您所說的"往下還原")﹐若需要使用最小化﹐請將biMinimize設為True
Form的BorderStyle屬性值﹕設為預設值bsSizeable就好﹐不需要改動 執行時期(做到您需要的效果)在Form的OnCreate事件中﹕
procedure TForm1.FormCreate(Sender: TObject); begin WindowState := wsMaximized; BorderIcons := [biSystemMenu]; //若需顯示最小化按按鈕﹕BorderIcons := [biSystemMenu,biMinimize]; FormStyle := fsNormal; end;小弟測試了一下您所說的"如果我把BorderIcons 的biMinimize設為false是可以拿掉”往下還原”,但form1 最大化後,form1 的 statusbar會被windows 的工作列所覆蓋,因而看不見statusbar"﹐其實不是因biMinimize設為False引起的﹐而是biMaximize引起的﹐當biMaximize為False時就會出現這樣的現象﹐有一個解決的方法﹐就是將FormStyle屬性值設為fsStayOntop(最上層顯示)﹐就可以正常顯示您的Statusbar了﹐不過這樣做有一個缺點﹐就是Windows的工具列也會被遮蓋住﹐那就要請您斟酌考量了﹒若需要在執行時期也將FormStyle屬性值設為fsStayOntop﹐請在Form的OnCreate事件中改最后一句如下﹕ FormStyle := fsStayOntop; 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |