Board logo

標題: [Delphi] Window 處理 [打印本頁]

作者: admin    時間: 2012-4-23 21:37     標題: [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;





歡迎光臨 How2Do (http://forum.how2do.com.hk/) Powered by Discuz! 7.2