delphi是全新的可视化编程环境为我们提供了一种方便快捷的windows应用程序开发工具它使用了microsoft windows图形用户界面的许多先进特性和设计思想采用了弹性可重复利用的完整的面向对象程序语言(objectoriented language)当今世界上最快的编辑器最为领先的开发工具之一对于广大的程序开发人员来讲使用delphi开发应用软件无疑会大大地提高编程效率另外DELPHI是一个开放系统只要灵活使用一些控件即可开发出各种类型的系统不论N-Tie程序多线程程序分布计算程序(包括DCOM和CORBAR)TCP程序Web程序ActiveX中间件推程序(Push)甚至你可以用它来写汇编程序下面笔者就列举几则DELPHI的开发应用事例
实现链接效果
该效果是表示当鼠标指向某字体该字体就出现下划线鼠标指针变为一支手指按下后就打开浏览器或邮件编写器的功能请按下列办法做
先在一个窗体中加入一个Label在OnMouseMove事件里加入下列代码
procedure TFormLabelMouseMove(Sender: TObject;shift:Tshiftstate;xy:integer);
begin
LabelFontStyle:=[fsboldfsunderline];
LabelFontColor:=clYellow;
end;
接着在Form的OnMouseMove事件里加入下列代码
procedure TFormFormMouseMove(Sender: TObject;shift:Tshiftstate;xy:integer);
begin
LabelFontStyle:=[fsbold];
LabelFontColor :=clmaroon;
end;
procedure TFormLabelClick(Sender: TObject);
begin
Shellexecute(handlenilpchar(mailto:test@cncom)nilnilsw_shownormal);
end;
再将LabelCursor的鼠标指针设为crHandPoint那么就有这种效果了
获取计算机的身份信息
获取计算机的身份信息功能表示通过程序设计达到自动获取机器的名字和IP地址的目的要实现这个功能我们可以使用DELPHI程序提供的TCP控件来完成下面是一个调用了WINSOCK的独立单元的一段功能代码我们可以把它直接嵌入到自己的程序中去
uses Winsock;
procedure TFormFormCreate(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
begin
{创建 WinSock}
wVersionRequested := MAKEWORD( );
WSAStartup(wVersionRequested wsaData);
end;
procedure TFormButtonClick(Sender: TObject);
var p : PHostEnt; s : array[] of char; p : pchar;
begin
{得到计算机名称}
GetHostName(@s);
p:=GetHostByName(@s);
MemoLinesAdd(p^h_Name);
{得到机器IP地址}
p := iNet_ntoa(PInAddr(p^h_addr_list^)^);
MemoLinesAdd(p);
end;
procedure TFormFormDestroy(Sender: TObject);
begin
{释放 WinSock}
WSACleanup;
end
修改显示分辨率
Windows提供给我们两个API函数可以动态调整显示器的分辨率他们是EnumDisplaySettings() 和ChangeDisplaySettings()下面的这个源代码实现了在两中分辨率之间的变换并且可以不用重新启动计算机
function DynamicResolution(X Y: word): BOOL;
var
lpDevMode: TDeviceMode;
begin
Result := EnumDisplaySettings(nil lpDevMode);
if Result then
begin
lpDevModedmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
lpDevModedmPelsWidth := X;
lpDevModedmPelsHeight := Y;
Result := ChangeDisplaySettings(lpDevMode ) = DISP_CHANGE_SUCCESSFUL;
end
end;
procedure TFormButtonClick(Sender: TObject);
begin
if DynamicResolution( ) then
ShowMessage(Now is *);
end;
procedure TFormButtonClick(Sender: TObject);
begin
if DynamicResolution( ) then
ShowMessage(Now is *); end;