返回列表 發帖

[Delphi] Window 處理

(1) Always on Top

// on the desired form . . .
procedure TForm1.FormShow(Sender: TObject);
begin
   SetWindowPos(Form1.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);
end;

(2) 終止程式


// 在程式的任何 form 加入以下一句都可以立即關閉程式
Application.Terminate;

(3) 取消 Alt +F4 關閉程式的功能

首先在 form內把 KeyPreview 特性設定為 "True", 那麼任何按鍵都先經過 Form 才去到form 內的其它物件, 跟著在 OnKeyDown Events中加入以下一句,

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);

begin  
  if (Key = VK_F4) and (ssAlt in Shift) then Key := 0;
end;

如果 F4 及Alt 一起按下, 以上程式就會吞下Alt+F4, 而其它按鍵組合則會傳到 Form 的下一級元件

(4) 重新啟動程式

uses ShellApi;

procedure TfrmMain.butClick(Sender: TObject);
begin
  AppRestart(self);
end;

procedure TfrmMain .AppRestart(Sender: TObject);
var AppName : PChar;
begin
  AppName := PChar('thisisaprogram.exe') ;
  ShellExecute(Handle,'open', AppName, nil, nil, SW_SHOWNORMAL) ;
  Application.Terminate;
end;
Bill Tang     MSN:billtang@openplatform.com.hk
Openplatform Technology Co.,Ltd. 資訊坊科技有限公司  
無線工程施工、方案設計、無線產品、天饋材料、終端設備綜合供應商
Tel: 852-27491011  Fax: 852-81483532

返回列表