赛迪网 > IT技术 DELPHI > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

学习DELPHI程序开发中的几则应用技巧

发布时间:2006.04.10 01:23     来源:赛迪网社区     作者:佚名

delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的windows应用程序开发工具。它使用了microsoft windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(object-oriented language)、当今世界上最快的编辑器、最为领先的开发工具之一。对于广大的程序开发人员来讲,使用delphi开发应用软件,无疑会大大地提高编程效率。另外DELPHI是一个开放系统,只要灵活使用一些控件,即可开发出各种类型的系统,不论N-Tie程序、多线程程序、分布计算程序(包括DCOM和CORBAR)、TCP程序、Web程序、ActiveX、中间件、推程序(Push),甚至你可以用它来写汇编程序。下面笔者就列举几则DELPHI的开发应用事例。

1、实现链接效果

该效果是表示当鼠标指向某字体,该字体就出现下划线,鼠标指针变为一支手指,按下后就打开浏览器或邮件编写器的功能,请按下列办法做:

先在一个窗体中加入一个Label1,在OnMouseMove事件里加入下列代码

procedure TForm1.Label1MouseMove(Sender: TObject;shift:Tshiftstate;x,y:integer); 
begin 
Label1.Font.Style:=[fsbold,fsunderline]; 
Label1.Font.Color:=clYellow; 
end;

接着在Form1的OnMouseMove事件里加入下列代码

procedure TForm1.FormMouseMove(Sender: TObject;shift:Tshiftstate;x,y:integer); 
begin 
Label1.Font.Style:=[fsbold]; 
Label1.Font.Color :=clmaroon; 
end; 

procedure TForm1.Label1Click(Sender: TObject); 
begin 
Shellexecute(handle,nil,pchar('mailto:test@21cn.com'),nil,nil,sw_shownormal); 
end;

再将Label1.Cursor的鼠标指针设为crHandPoint,那么就有这种效果了。

2、获取计算机的身份信息

获取计算机的身份信息功能表示通过程序设计,达到自动获取机器的名字和IP地址的目的。要实现这个功能,我们可以使用DELPHI程序提供的TCP控件来完成。下面是一个调用了WINSOCK的独立单元的一段功能代码,我们可以把它直接嵌入到自己的程序中去。

uses Winsock; 
procedure TForm1.FormCreate(Sender: TObject); 
var 
wVersionRequested : WORD; 
wsaData : TWSAData; 
begin 

{创建 WinSock} 
wVersionRequested := MAKEWORD(1, 1); 
WSAStartup(wVersionRequested, wsaData); 
end; 
procedure TForm1.Button1Click(Sender: TObject); 
var p : PHostEnt; s : array[0..128] of char; p2 : pchar; 
begin 

{得到计算机名称} 
GetHostName(@s,128); 
p:=GetHostByName(@s); 
Memo1.Lines.Add(p^.h_Name); 

{得到机器IP地址} 
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^); 
Memo1.Lines.Add(p2); 
end; 

procedure TForm1.FormDestroy(Sender: TObject); 
begin 

{释放 WinSock} 
WSACleanup; 
end

3、修改显示分辨率

Windows提供给我们两个API函数,可以动态调整显示器的分辨率,他们是EnumDisplaySettings() 和ChangeDisplaySettings(),下面的这个源代码实现了在两中分辨率之间的变换,并且可以不用重新启动计算机:

function DynamicResolution(X, Y: word): BOOL; 
var 
lpDevMode: TDeviceMode; 
begin 
Result := EnumDisplaySettings(nil, 0, lpDevMode); 
if Result then 
begin 
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT; 
lpDevMode.dmPelsWidth := X; 
lpDevMode.dmPelsHeight := Y; 
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL; 
end 
end; 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
if DynamicResolution(640, 480) then 
ShowMessage('Now is 640*480'); 
end; 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
if DynamicResolution(800, 600) then 
ShowMessage('Now is 800*600'); end;

(T113)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 如何用Delphi开发简单的WebMail程序 (04-07) · DELPHI的中文版安装程序制作大揭密 (04-06)
· 专题:移动开发中的Web Services (03-22) · 有可能挑战Java开发优势的四种技术 (02-14)
· 有可能挑战Java开发优势的四种技术 (02-14) · 怎样在DELPHI中实现文件切割/组合 (02-07)
· DELPHI编程实现3DS的动画播放 (02-07) · 嵌入式系统开发,为什么选择Linux? (01-05)
· 周末巨献:有可能挑战Java优势的四种技术 (12-09) · 轻量级开发成功秘诀:露出水面的Spring (11-22)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管