Delphi的两个实用技巧(2)

cmyfamily

cmyfamily

2016-01-29 14:20

Delphi的两个实用技巧(2),Delphi的两个实用技巧(2)
 

二.巧用(Windows的)API函数

  这里用几个具体的应用来说明:

应用1:

Delphi中有控件MEMO,当使用应控件输入内容或编辑时,如何确定光标当前的位置呢?这时就可以调用Windows API函数中的EM_LINEFROMCHAR和EM_LINEINDEX消息来确定MEMO控件中光标的当前行和列,具体调用方法的过程如下:

procedure TForm1.Button1Click(Sender: TObject);
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;

应用2:

  Delphi中的控件TlistBox没有提供水平滚动条,如果想添加一个水平流动条,我们只需使用API函数给TListBox 发送一个LB_SetHorizontalExtent消息就行了。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)

源代码如下:
SendMessage(ListBox1.Handle,LB_SetHorizontalExtent,2000,
longint(0));

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/delphi/)

应用3:

  当我们需要获取所运行程序的计算机的分辨率时,有二种方法:①可以通过访问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;

 
展开更多 50%)
分享

猜你喜欢

Delphi的两个实用技巧(2)

Delphi
Delphi的两个实用技巧(2)

Delphi的两个实用技巧(1)

Delphi
Delphi的两个实用技巧(1)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Delphi的两个实用技巧(1)播放Flash

Delphi
Delphi的两个实用技巧(1)播放Flash

Delphi的两个实用技巧(2)巧用Windows的API函数

Delphi
Delphi的两个实用技巧(2)巧用Windows的API函数

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

QQ实用技巧两则

电脑入门
QQ实用技巧两则

JavaScript实用技巧集锦(2)

电脑网络
JavaScript实用技巧集锦(2)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《烈火遮天》职业攻略道士篇 新手攻略

《烈火遮天》职业攻略道士篇 新手攻略

用PHP+MYSQL实现论坛里的分级+分页显示

用PHP+MYSQL实现论坛里的分级+分页显示
下拉加载更多内容 ↓