在Delphi中巧用WINDOWS 的API函式 (轉)
在Delphi中巧用WINDOWS 的API函式 (轉)[@more@]應用之一:中有MEMO,當使用應控制元件輸入內容或編輯時,如何確定游標當前的位置呢?這時就可以 中的EM_LINEFROMCHAR和EM_LINEINDEX訊息來確定MEMO控制元件中游標的當前行和列,具體呼叫方法的過程如下:
procedure TForm1.Button1Click(Sender: T);
var
LineNum:longint;
CharsBeforeLine:longint;
begin
LineNum := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,
Memo1.SelStart,0);
CharsBeforeLine:=SendMessage(Memo1.Handle,EM_LINEINDEX,
LineNum,0);
Label1.Caption:='Line: '+IntToStr(LineNum + 1);
Label2.Caption:='Position: '+IntToStr((Memo1.SelStart -
CharsBeforeLine)+1);
end;
應用之二:Delphi中的控制元件TlistBox沒有提供水平捲軸,如果想新增一個水平流動條,其實也很簡單,我們只需使用API給TListBox 傳送一個LB_SetHorizontalExtent訊息就行了。
如下:
SendMessage(ListBox1.Handle,LB_SetHorizontalExtent,2000,
longint(0));
應用之三:當我們需要獲取所執行的的解析度時,有二種方法:①可以透過訪問Delphi提供的SCREEN全域性變數,即SCREEN.WIDTH和SCREEN.HEIGHT以畫素點給出螢幕的解析度。②利用WINDOWS的API函式GetDeviceCaps()來得到所用顯示器的解析度,程式碼如下:
Application.Initialize;
Application.CreateForm(TForm1, Form1);
CASE GetDeviceCaps(GetDC(Form1.Handle), HORZRES) of
640 : //對640*480解析度進行處理的程式碼;
800 : //對800*600解析度進行處理的程式碼;
1024: //對1024*768解析度進行處理的程式碼;
1280: //對1280*1024解析度進行處理的程式碼;
END;
Application.Run;
procedure TForm1.Button1Click(Sender: T);
var
LineNum:longint;
CharsBeforeLine:longint;
begin
LineNum := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,
Memo1.SelStart,0);
CharsBeforeLine:=SendMessage(Memo1.Handle,EM_LINEINDEX,
LineNum,0);
Label1.Caption:='Line: '+IntToStr(LineNum + 1);
Label2.Caption:='Position: '+IntToStr((Memo1.SelStart -
CharsBeforeLine)+1);
end;
應用之二:Delphi中的控制元件TlistBox沒有提供水平捲軸,如果想新增一個水平流動條,其實也很簡單,我們只需使用API給TListBox 傳送一個LB_SetHorizontalExtent訊息就行了。
如下:
SendMessage(ListBox1.Handle,LB_SetHorizontalExtent,2000,
longint(0));
應用之三:當我們需要獲取所執行的的解析度時,有二種方法:①可以透過訪問Delphi提供的SCREEN全域性變數,即SCREEN.WIDTH和SCREEN.HEIGHT以畫素點給出螢幕的解析度。②利用WINDOWS的API函式GetDeviceCaps()來得到所用顯示器的解析度,程式碼如下:
Application.Initialize;
Application.CreateForm(TForm1, Form1);
CASE GetDeviceCaps(GetDC(Form1.Handle), HORZRES) of
640 : //對640*480解析度進行處理的程式碼;
800 : //對800*600解析度進行處理的程式碼;
1024: //對1024*768解析度進行處理的程式碼;
1280: //對1280*1024解析度進行處理的程式碼;
END;
Application.Run;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988067/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 充分利用Windows API擴充套件Delphi函式 (轉)WindowsAPI套件函式
- DELPHI中使用API函式詳解 (轉)API函式
- VCL 中的 Windows API 函式(4): AdjustWindowRectExWindowsAPI函式
- Delphi 中big5 轉 Unicode 函式Unicode函式
- Windows API GetUserNameEx 函式使用WindowsAPI函式
- delphi函式參考手冊 (轉)函式
- ASP中巧用Split()函式生成SQL查詢語句 (轉)函式SQL
- delphi中回撥函式差異函式
- 在DELPHI中圖片轉換
- 在Delphi與C++之間實現函式與物件共享 (轉)C++函式物件
- DELPHI中的靜態虛擬及動態方法函式的區別。 (轉)函式
- 在Delphi中操作快捷方式 (轉)
- 巧用 PHP 陣列函式PHP陣列函式
- 巧用python“int”函式Python函式
- MYSQL 一個巧用字元函式巧用字元函式做資料篩選的題MySql字元函式
- Delphi編碼標準——過程和函式 (轉)函式
- WINDOWS鉤子函式(轉)Windows函式
- windows記憶體管理和API函式Windows記憶體API函式
- 想在你的程式中截住API函式嗎?那就快看吧! (轉)API函式
- 在DELPHI程式中撥號上網 (轉)
- 在Delphi中實現圖片的旋轉、縮放 (轉)
- VB呼叫API函式使視窗保持在最上層 (轉)API函式
- 如 何 在Oracle Developer/2000 中 調 用Windows API 函 數OracleDeveloperWindowsAPI
- 在Delphi中實現任意形狀的窗體 (轉)
- 在Delphi中捕獲控制檯程式的輸出 (轉)
- 在Delphi中編寫控制元件的基本方法 (轉)控制元件
- [轉]delphi 有授權許可的字串拷貝函式原始碼字串函式原始碼
- js中在一個函式中引用另一個函式中的函式,可以這麼做JS函式
- 用api函式讀取硬碟的序列號 (轉)API函式硬碟
- C#中呼叫Windows API的要點 (轉)C#WindowsAPI
- 在Delphi中編寫控制元件的基本方法(1) (轉)控制元件
- WINDOWS未開函式揭密(1) (轉)Windows函式
- Windows函式錯誤處理 (轉)Windows函式
- 在DELPHI2.0/3.0中直接操作埠 (轉)
- 轉:對字串的“sum”——在Oracle中自定義聚集函式的例子字串Oracle函式
- Delphi中的類和物件 (轉)物件
- Delphi Win32 API 使用的特殊情況 (轉)Win32API
- Delphi Open Tools Api例項研究(一) (轉)API