中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Delphi > 综合文章
学习DELPHI程序开发中的几则应用技巧
作者:佚名 时间:2006-10-05 13:05 出处:ccidnet.com 责编:月夜寒箫
              摘要:学习DELPHI程序开发中的几则应用技巧

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;

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有