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

2016-01-29 14:13 5 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;
 

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

延伸阅读
标签: 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 表示:要增加的日期的哪个...
标签: 电脑入门
现在的即时聊天软件的附加功能是越来越多,做为其中翘楚的QQ当然也不例外。笔者偶然间发现了几个非常实用有趣的技巧,在此写出来于大家一起分享。 个性化的邮箱名 大家都知道QQ提供了QQ邮箱,点击QQ面板中的信封图标就可以收发邮件(如果你没有开通赶快去开通噢)。不过初始的邮箱名都是QQ号码@qq.com。比如你的QQ号码是177277...
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...
标签: 头发护理
6个明星吹发的实用技巧 技巧1:把头发分区 把头发分区吹会更加容易,想想沙龙里理发师都是怎么给你吹的?先把上层的头发束到头顶,把下层的头发吹干。然后把头顶的湿发放下后,再依次吹干。自己在家的时候也可以这么做,否则你会发现表面的头发已经非常干燥了,但是里面的发根却仍然非常潮湿。 技巧2:先吹发根 ...

经验教程

263

收藏

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