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:[email protected]'),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;  http://develop.csai.cn/delphi/200609131546311696.htm