电竞比分网-中国电竞赛事及体育赛事平台

分享

幾個Delphi技巧

 quasiceo 2014-08-11
  •  


1、判斷Num Lock、Caps Lock、Scroll Lock指示燈狀態(tài)

  以Num Lock為例:
  function IsNumLockOn() : boolean;
  begin
    Result := (GetKeyState(VK_NUMLOCK) and $01) <> 0;
  end;


  如果燈亮則返回True,不亮返回False。
  VK_NUMLOCK 替換成 VK_CAPITAL 或 SCROLL  則可以判斷Caps Lock 或 Scroll Lock指示燈的狀態(tài)。

2、更改ComboBox組件的下拉框的寬度

  ComboBox下拉框的寬度默認是與ComboBox的寬度(Width)相同的,所以如果ComboBox的Item內(nèi)容長度比較長時,下拉框就顯示不了。這時可以用代碼更改下拉框的寬度,以顯示完整內(nèi)容:

  ComboBox1.Perform(CB_SETDROPPEDWIDTH, 600, 0);

  “600”表示新的寬度,可以根據(jù)需要修改。

3、激活當前的屏幕保護程序

  PostMessage(GetDesktopWindow, WM_SYSCOMMAND, SC_SCREENSAVE, 0);

4、打開Windows查找對話框(需添加ShellAPI單元)

  ShellExecute(
      handle,
      'find', 
      'c:/windows', // 開始搜索的目錄
      '', 
      '',
      SW_SHOW
     );


5、判斷系統(tǒng)是否是使用大字體。如果用戶設(shè)置顯示效果是大字體,將會嚴重影響軟件界面的顯示。

  if Screen.PixelsPerInch = 96 then
  ;// 正常字體;

  if Screen.PixelsPerInch = 120 then
  ;// 大字體;


6、取消默認的Beep。Delphi的TEdit組件中用戶按下回車鍵后,PC揚聲器都會Beep一聲。下面的代碼用于取消這一聲:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then key := #0;
end;

7、判斷外部應(yīng)用程序是否停止響應(yīng)

procedure TForm1.Button1Click(Sender: TObject);
var
 H : THandle;
 lngReturnValue : longint;
 DWResult : DWORD;
begin
 H := FindWindow('Notepad', nil);  //要判斷的程序
 if H > 0 then
  begin
    lngReturnValue := SendMessageTimeout(H, WM_NULL, 0,
      0, SMTO_ABORTIFHUNG And SMTO_BLOCK, 1000, DWResult);
    if lngReturnValue > 0 then
     ShowMessage('Responding')
      else
       ShowMessage('Not responding');
  end
   else
     ShowMessage('Application not found');
end; 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多