a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Delphi > 正文

Delphi編程技巧實例

2019-11-18 18:48:28
字體:
來源:轉載
供稿:網友
Delphi作為一門新起的Windows編程語言,由于其集眾多的優秀特性于一身,因而越來越得到廣大編程人員和發燒友的青睞。以下十則技巧涉及的面比較廣泛,希望能夠對Delphi的愛好者有所裨益。

1.類似于vb.中的doevents功能。

  大家或許發現,在Delphi中沒有類似于vb.中的doevents函數,這樣有的時候,我們將無法使Windows響應多個同時發生的事件。其實,在Delphi的applica??tion對象中包括類似的一個方法:PRocessMessage,你可以通過調用application.ProcessMessage來完成象vb.中的doevents一樣的功能。

2.在Delphi中調用NetscapeNavigator。

  隨著Internet的火爆,有沒有想過在你的Delphi程序中啟動Netscape瀏覽器,顯示出你指定的WWW地址的主頁。下面這個程序能夠完成這一功能。

  programNetscape;

  usesDDEMan;

  procedureGo??toURL(sURL:string);

  var

  dde:TDDEClientConv;

  begin

  dde:=TDDEClientConv.Create(nil);

  withddedo

  begin

  //specifythelocationofnetscape.exe

  ServiceApplication:=′c: s32program etscape.exe′;

  //activatetheNetscapeNavigator

  SetLink(′Netscape′,′WWW―Activate′);

  RequestData(′0xFFFFFFFF′);

  //gotothespecifiedURL

  SetLink(′Netscape′,′WWW―OpenURL′);

  RequestData(sURL+′,,0xFFFFFFFF,0x3,,,′);

  CloseLink;

  end;

  dde.Free;

  end;

  begin

  GotoURL(′http://www.yahoo.com/′);

  end.

3.格式化整數輸出。

  比較大的數字在輸出時會顯得不易閱讀,在Delphi中顯示帶分節號的數字是相當簡單的一件事,如下即可:xxxxx.caption:ΚFormatFloat(′#′,524667500)。


4.在編譯時獲得提示。

  在Delphi2.0中,編譯時,可以讓編譯器告訴你一些提示,比如哪些變量聲明了,卻從來沒有使用過。我們知道,可以通過菜單中的選項來控制是否要Delphi這樣做,但如果由于一些特殊需要,你只要在指定的代碼段需要Delphi這樣的提示,怎么辦呢?請參考如下的程序。

  {$HINTON}

  procedureTform1.Button1Click(Sender:TObject);

  var

  X:integer;

  begin

  end;

  {$HINTOFF}

5.更改Windows95的墻紙。

  在Delphi中你可以很方便地更改墻紙,請參考以下的程序。

  procedureChangeIt;

  var

  Reg:TregIniFile;

  begin

  Reg:ΚTRegIniFile.Create(′ControlPanel′)

  Reg.WriteString(′desktop′,′Wallpaper′,
′c:pwin95forest.bmp′);

  Reg.WriteString(′desktop′,′TileWallpaper
′,′1′);

  Reg.Free;

  SystemParametersInfo(SPI―SETDESKWALLPAPER,0
,nil,SPIF―SENDWININICHANGE);

  end;

6.獲得最后使用文件的日期。

  在Win95中有一項新的功能,就是可以獲得訪問文件的最后日期。著名的CleanSweapforWin95軟件中就是靠這一功能來作為判斷某個文件是否被經常訪問的依據之一。在Delphi中,我們可以通過下面的程序來達到此功能。

  functionGetFileLastaccessTime(sFileName:string):TDate??Time;

  var

  ffd:TWin32FindData;

  dft:DWord

  lft:TFileTime;

  h:THandle;

  begin

  //getfileinformation

  h:ΚWindows.FindFirstFile(PChar(sFileName),ffd);

  if(INVALID―HANDLE―VALUEΙΛh)then

  begin

  //we′relookingforjustonefile,socloSEOur″find″

  Windows.FindClose(h);

  //converttheFILETIMEtolocalFILETIME

  FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);

  //convertFILETIMEtoDOStime

  FileTimeToDosDateTime(lft,LongRec(dft).Hi,LongRec(dft).Lo);

  //finally,convertDOStimetoTDateTimeforuseinDelphi′snativedate/timefunctions

  Result:ΚFileDateToDateTime(dft);

  end;

  end;

  GetFileLastAccessTime()將會以Delphi的TdateTime格式返回你所指定的文件的最后訪問日期。

7.豐富多彩的標簽。

  我們已經不滿足于Delphi提供的簡單的標簽,能不能在標簽中有不同的字體,有不同的顏色,以此來豐富我們的表現能力。回答是肯定的,并且用不著第三方提供的控件,我們只要巧妙的利用Delphi自己提供的TRichEdit就可以了。首先將TRichEdit控件的邊框去除:RichEd??it1.BorderStyle:ΚbsNone;同時設置只讀屬性為真:RichEd??it1.ReadOnly:ΚTrue;然后,你利用write之類的軟件制作好RichText格式的文本,通過以下語句就可以顯示出來了:

  RichEdit1.PlainText:ΚFalse;

  RichEdit1.Lines.LoadFromFile(′c: est.rtf′);

  8.如何防止Win95顯示嚴重錯誤。

  不管你的程序如何反復調試,交給用戶之后,總有可能發生你意想不到的錯誤,如何避免Win95顯示出白色的窗口,告訴你的用戶發生了難堪的意外錯誤呢?我們可以這樣做:

  var

  wOldError??Mode:Word;

  begin

  //tellwin??dowstoignorecriticalerrorsandsavecur??renterrormode

  wOldError??Mode:ΚSetEr??rorMode(SEM―FAILCRITI??CALERRORS);

  try

  //codethatmightgenerateacriticalerrorgoeshere...

  finally

  //gobacktopreviouserrormode

  SetErrorMode(wOldErrorMode);

  end;

  end;

  主要是利用SetErrorMode()來完成這一功能。

9.剛才用鼠標擊了哪一個對象。

  在Win95中,鼠標的右鍵起到了很大的作用,但是,由于歷史的原因,對于右鍵的使用即使在Delphi中,也還不夠有效,下面的程序可以告訴你如何知道剛才鼠標右擊的對象名稱。首先建立一個popmenu,然后以下的代碼就可以告訴你剛才右擊的對象名稱:Popup??Menu1.PopupComponent.ClassName。

  

10.檢測CD-ROM或是其他磁盤是否有過變化。

  最簡單的檢查CD-ROM或是磁盤是否有過變化的方法是檢查其volume號碼。你可以簡單地運用下面的函數來返回磁盤的volume系列號碼GetDiskVolSerialID(′E′),函數代碼如下:

  functionGetDiskVolSerialID(cDriveName:char):DWord;

  var

  dwTemp1,dwTemp2:DWord;

  begin

  GetVolumeInformation(PChar(cDriveName+′:′),Nil,0,ΝResult,dwTemp2,dwTemp2,Nil,0);

  end;


上一篇:截獲Delphi中的異常

下一篇:DELPHI下漢字輸入法的編程及使用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 在线视频 亚洲 | 在线一区二区三区 | 蜜臀久久99精品久久久无需会员 | 在线免费观看色视频 | 亚洲精品久久久蜜桃 | 天天干天天爽 | 一级片在线观看网站 | 欧美日韩精品在线一区 | 高清国产一区二区三区 | 高清一区二区三区视频 | 日本久久精品一区 | 国产 日韩 欧美 在线 | www.xxxx在线观看 | 3bmm在线观看视频免费 | 亚洲视频在线看 | 国产激情久久久久久 | 欧美精品一区二区三区一线天视频 | 在线免费观看色视频 | 日韩aaa久久蜜桃av | 国产精品不卡顿 | 色视频免费看 | 成人久久免费 | 亚洲va中文字幕 | 狠狠爱天天干 | 中文字幕 在线观看 | 欧美中文字幕 | 日本欧美国产 | 国产成人久久 | 午夜高清视频在线观看 | 人人插 | 一区二区中文字幕 | 亚洲精品久久久久久久久久久 | 黄色99 | 99久久婷婷国产精品综合 | 久久成人国产精品入口 | 日韩综合 | 亚洲国产精品久久久久久女王 | 青青草综合在线 | 亚洲wu码 | 午夜一本 | 久久www免费人成看片高清 |