熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

學習DELPHI程序開發中的幾則應用技巧

2022-06-13   來源: Delphi編程 

  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;


From:http://tw.wingwit.com/Article/program/Delphi/201311/8493.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.