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

首頁 > 編程 > Delphi > 正文

Delphi編程技巧十則

2019-11-18 18:57:31
字體:
供稿:網(wǎng)友
Delphi作為一門新起的Windows編程語言,由于其集
眾多的優(yōu)秀特性于一身,因而越來越得到廣大編程人員和
發(fā)燒友的青睞。以下十則技巧涉及的面比較廣泛,希望能
夠?qū)elphi的愛好者有所裨益。

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

  大家或許發(fā)現(xiàn),在Delphi中沒有類似于vb.中的doev
ents函數(shù),這樣有的時(shí)候,我們將無法使Windows響應(yīng)多
個(gè)同時(shí)發(fā)生的事件。其實(shí),在Delphi的applica??tion對(duì)象
中包括類似的一個(gè)方法:PRocessMessage,你可以通過調(diào)
application.ProcessMessage來完成象vb.中的doeve
nts一樣的功能。

  2.在Delphi中調(diào)用NetscapeNavigator。

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

  programNetscape;

  usesDDEMan;

  procedureGo??toURL(sURL:string);

  var

  dde:TDDEClientConv;

  begin

  dde:ΚTDDEClientConv.Create(nil);

  withddedo

  begin

  //specifythelocationofnetscape.exe

  ServiceApplication:Κ′c:ιns32ιprogramιne
tscape.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.格式化整數(shù)輸出。

  比較大的數(shù)字在輸出時(shí)會(huì)顯得不易閱讀,在Delphi中
顯示帶分節(jié)號(hào)的數(shù)字是相當(dāng)簡(jiǎn)單的一件事,如下即可:xx
xxx.caption:ΚFormatFloat(′#′,524667500)。


  4.在編譯時(shí)獲得提示。

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

  {$HINTON}

  procedureTform1.Button1Click(Sender:TObject
);

  var

  X:integer;

  begin

  end;

  {$HINTOFF}

  5.更改Windows95的墻紙。

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

  procedureChangeIt;

  var

  Reg:TregIniFile;

  begin

  Reg:ΚTRegIniFile.Create(′ControlPanel′)


  Reg.WriteString(′desktop′,′Wallpaper′,
′c:ιpwin95ιfor??est.bmp′);

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

  Reg.Free;

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

  end;

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

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

  functionGetFileLastaccessTime(sFileName:stri
ng):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″f
ind″

  Windows.FindClose(h);

  //converttheFILETIMEtolocalFILETIME

  FileTimeToLocalFileTime(ffd.ftLastAccessTime
,lft);

  //convertFILETIMEtoDOStime

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

  //finally,convertDOStimetoTDateTimeforusein
Delphi′snativedate/timefunctions

  Result:ΚFileDateToDateTime(dft);

  end;

  end;

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

  7.豐富多彩的標(biāo)簽。

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

  RichEdit1.PlainText:ΚFalse;

  RichEdit1.Lines.LoadFromFile(′c:ιtest.r
tf′);

  8.如何防止Win95顯示嚴(yán)重錯(cuò)誤。

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

  var

  wOldError??Mode:Word;

  begin

  //tellwin??dowstoignorecriticalerrorsandsave
cur??renterrormode

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

  try

  //codethatmightgenerateacriticalerrorgoesher
e...

  finally

  //gobacktopreviouserrormode

  SetErrorMode(wOldErrorMode);

  end;

  end;

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

  9.剛才用鼠標(biāo)擊了哪一個(gè)對(duì)象。

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

  

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

  

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

  functionGetDiskVolSerialID(cDriveName:char)
:DWord;

  var

  dwTemp1,dwTemp2:DWord;

  begin

  GetVolumeInformation(PChar(cDriveName+′:
ι′),

  Nil,

  0,

  ΝResult,

  dwTemp2,

  dwTemp2,

  Nil,

  0);

  end;

上一篇:在DELPHI2.0/3.0中直接操作端口

下一篇:Delphi程序使用資源的釋放

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 国产成人精品午夜视频免费 | 日韩一区在线观看视频 | 亚洲免费综合 | 69久久99精品久久久久婷婷 | 国产在线不卡视频 | 精品成人佐山爱一区二区 | 亚洲狠狠爱 | 国产视频久久久 | 高清一区二区 | 中文字幕123伦 | 国产一区二区精品丝袜 | 日韩电影免费观看 | 天天干天天操天天爽 | 日韩在线观看 | 久久久婷 | 日本精品一区 | 欧美精品二区中文乱码字幕高清 | 91久久| 亚洲国产一区二 | 欧美激情一区二区三级高清视频 | 国产男女爽爽爽免费视频 | 日韩毛片 | 国产精品一区二区久久乐夜夜嗨 | 精品国产一级片 | 成人在线观看中文字幕 | 九九综合 | 日韩精品视频在线观看网站 | 欧美日韩三级在线 | 国产精品久久久久久久7电影 | www.天天草| 久久久久高清 | 日韩免费网站 | 国产成人 综合 亚洲 | 成人国产精品免费网站 | 欧美一级片免费观看 | 免费视频爱爱太爽了 | 欧美精品一区二区三区在线播放 | 亚洲一区二区在线免费观看 | 久久综合激情 | 日韩高清国产一区在线 | 久久国产精品无码网站 |