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

2016-01-29 14:13 3 1 收藏

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

【 tulaoshi.com - Delphi 】

 
二.巧用(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消息就行了。


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

应用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;
 

来源:https://www.tulaoshi.com/n/20160129/1492801.html

延伸阅读
标签: windows 操作系统
Windows XP安装一年多了,最近发现系统运行速度明显慢了下来,用了很多优化软件、卸载已经安装的软件都无济于事。为了找出症结所在,笔者先查看了Windows XP所在区的磁盘空间,发现Windows文件夹占用的空间大了不少。笔者随即进入Windows各文件夹看看有没有奇怪的文件,查看到“Windows\Prefetch”文件夹(即Windows预读文件夹)时,发现里面...
标签: ASP
'****************************** '||Function TimeDiff(sBegin, sEnd) '||本函数计算两个时间的差,可以不用更改直接使用 '||作者:machinecat 2001/10/26 '****************************** '****************************** '注:首先需要判断用户输入的sBegin与sEnd之间的大小 '可以通过DataDiff函数获得两者之间的时间差,不需要进行复杂...
标签: PHP
  <?php //文件名:date.inc.php3 //在使用这两个函数前,要先将日期或日期时间转换成timestamp类型。 //如: //$today=mktime(0,0,0,date("m"),date("d"),date("Y")); /****模拟sqlserver中的dateadd函数******* $part 类型:string 取值范围:year,month,day,hour,min,sec 表示:要增加的日期的哪个...
14. 光标是停在文本框文字的最后 <script language="javascript" function cc() { var e = event.srcElement; var r =e.createTextRange(); r.moveStart("character",e.value.length); r.collapse(true); r.select(); } </script <input type=text name=text1 value="123" onfocus="cc()" 15. 判断的来源 javascript: document.ref...
标签: windows 操作系统
★紧急情况下的临时“防火墙” 一台接入因特网的电脑中了木马,其中所有硬盘都被设为共享。在杀除木马前,如果不想与他人共享你的资源,更不想被破坏,有一种简便的方法:在“控制面板→管理工具→服务”中用右键点击“Server”,选择“属性”,在“启动类型”中选择“已禁用”,确定后,重启电脑即可立即禁用所有共享。 ★Wind...

经验教程

281

收藏

29
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部