网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
DELPHI程序开发中的几则应用技巧
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

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; 

  • 上一篇资讯: 检测delphi是否正在运行
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号