亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? delphi經驗技巧集錦.txt

?? 學習(編程技巧_編程知識_程序代碼),是學習編程不可多得的學習精驗
?? TXT
字號:
Delphi經驗技巧集錦
 

--------------------------------------------------------------------------------
 
第八軍團 時間:2003-12-29 12:38:26 
   
---- 一.為列表框添光彩 

---- 為了改變Listbox和Combobox兩個控件的單調風格, 我想在它們的每一項前面加上個圖標。從表面上看好像不大可能啦。就在走投無路的時候,我忽然發現這兩個構件都有一個style屬性, 它可以設為lbOwnerDrawFixed,Draw這個單詞吸引了我,然后我又從Delphi的在線幫助中找到了一個相關的事件OnDrawItem,在這個事件中寫一段代碼,就可以在列表框中的每一項前面添加一個小圖標啦。 

---- 下面是在Listbox 的OnDrawItem事件中添加的代碼: 

procedure Tform1.ListBox1DrawItem(Control: 
TWinControl; Index: Integer; 
Rect: TRect; State: TOwnerDrawState); 
var 
Bitmap: TBitmap; 
Offset: Integer; 
begin 
with (Control as TListBox).Canvas do 
begin 
FillRect(Rect); 
Offset := 2; 
Bitmap := TBitmap.create; 
Bitmap.LoadFromFile(′d:temp11.bmp′); 
//指定圖文件是d:temp11.bmp 
BrushCopy(Bounds(Rect.Left + 2, Rect.Top, 
Bitmap.Width, Bitmap.Height), 
Bitmap, Bounds(0, 0, Bitmap.Width, 
Bitmap.Height), clRed); 
Offset := Bitmap.width + 6; 
TextOut(Rect.Left + Offset, Rect.Top, 
(Control as TListBox).Items[Index]) 
end; 
end; 
---- 進一步,利用OnDrawItem事件的參數Index還可以在不同項前面添加不同的圖標。還要告訴你的是, 當用add方法為列表框或下拉框添加項目時, 會自動執行 OnDrawItem事件,這樣新添加的項目前面也就有了一個圖標。 
---- 二.獲取count值 

---- Delphi與Power Builder一樣,都提供了SQL語言,來實現對數據庫的訪問,僅僅是實現語句的長短不同。Delphi是在Pascal語言基礎之上發展起來的,它提供了強大的功能,各種控件提供了豐富的屬性和方法。我們應該充分利用這些屬性和方法。要想知道某數據庫的記錄數, 用一個簡單的語句即可完成。例如求Delphi的DBDemos數據庫中表 day.db的記錄總數,假設Table控件已加到form上,具體實現語句為: 

Edit1.text:=inttostr(Table1.recordcount); 
如果是要知道符合某條件的記錄數,也非常方便,具體實現語句為: 
Edit1.text:=inttostr(Query1.recordcount); 
Recordcount屬性用來表示為數據集相連的表的記錄總數。 
還有一種通用的方法,具體實現語句為: 
VAR i:integer; 
Begin 
i:=0; 
Table1.open; 
Table1.First; 
While not Table1.eof do 
BEG1N 
i:=i+1; 
Table1.next; 
End; 
Edit1.text:=inttostr(i); 
如果使用了TQuery控件,具體步驟如下: 
Query1.close; 
Query1.SQl.clear; 
query1.SQL.add (′ ...... ′); 
//某查詢語句 
Query1.open 
Query1.first; 
i:=0; 
While not Query1.eof do 
BEG1N 
i:=i+1; 
Query1.next; 
EnD 
Edit1.text:=Inttostr(i); 
---- 三.給數據庫報表加上網格線 
---- Delphi 1.0和2.0版捆綁了Reportsmith報表制作工具,實現報表打印。如果打印一個很簡單的報表,在程序中啟動Reportsmith,就顯得比較麻煩。對于比較簡單的報表,我們一般按本報63期相應文章的方法實現報表打印。例如,用Delphi 1.0編寫的商業財務軟件《保靈商務營銷管理系統》中報表打印就是自主開發的,整個系統顯得短小、整體性比較好。Delphi 3.0和Delphi 4.0就不再捆綁Reportsmith,但增加了QReport組中報表控件的功能, 使得報表制作更加靈活。給報表加上網格線就太容易了。在QReport 組件中用來顯示數據的TQRExpr。 它就有一個Frame屬性, 按下 F11鍵, 在 “Object inspect”中,修改“Frame”屬性,它提供7個子屬性,其功能如下: 

Color 顯示網格線顏色 
style 報表網格線的形狀,如實線、虛線等 
Width 網格線的寬度 
DrawBottom 網格的底部 
Drawlefl 網格的左邊 
DrawRight 網格的右邊 
DrawTop 網格的底部 
---- 在制做報表前,最好在數據庫表中添加幾個記錄,然后根據需要修改這些屬性,使用報表的預覽功能在設計期間看修改效果,不滿意可立即修改。 
---- 四.定制Speedbar 

---- 在Delphi的可視化設計界面中,使用最頻繁的地方要數位于屏幕左上角的加速按鈕欄(Speedbar)了。在實踐過程中,筆者無意中發現了Speedbar的定制方法,這在我用過的四本Delphi參考書中均未提及到。步驟如下: 

---- 右鍵點擊Speedbar, 在彈出菜單中選Properties, 這時會出現一個名為Speedbar Editor的對話框。假設想要增設一項“語法檢查”的功能,可在左邊Categories列表框中選Project, 再把右側的Syntax Check圖標拖放到Speedbar的合適的位置上,這項功能就已經加上了。 如果speedbar上沒有多余的空間來容納新的按鈕, 可將鼠標停在 speedbar右框處,變為雙向箭頭的形狀時,向右拖動一段距離,就可騰出空間。如想刪除speedbar上的某個按鈕,可簡單地把它拖出speedbar的范圍,就能刪除。操作十分方便。 建議把Syntax Check、 Project Options(工程選項) 、 WindowsApi Help加到 Speedbar中,可以提高開發效率。 

---- 五.設計form時的快捷鍵 

---- 使用快捷鍵可以加快設計速度。下面列出的快捷鍵,可根據實際情況,有選擇地熟練掌握。 

  Del :刪除所選組件; 
  Esc :選擇當前組件的容器(通常是Panel,Group或form); 
  F11 :在form或Unit和對象檢查器之間切換; 
  F12 :在form和代碼編輯器間切換; 
  Ctrl+F12 :顯示“查看Unit”對話框; 
  Shift+F12 :顯示“查看form”對話框; 
  TAB :下一個組件; 
  Shift+TAB :上一個組件; 
  方向鍵 :選中此方向上最近的組件; 
  Ctrl+方向鍵 :將所選組件移動一個點; 
  Shift+方向鍵 :將所選組件改變一個點的大小; 
  Ctrl+Shift+方向鍵 :將所選組件移動一個格; 
  Shift+click :按住Shift鍵再用鼠標點擊組件,可以選擇多個組件。 
---- 下面這條是我摸索出來的: Ctrl+drag :按住Ctrl鍵在一個容器組件(如Panel,QReport,Groupbox等)里拖動鼠標,可強制選擇鼠標拖過的矩形框中的所有屬于此容器的可視組件(不包括該容器組件)。 
---- 六.命令行參數的使用 

---- Delphi提供了訪問命令行參數的方便的方式,那就是使用ParamStr和ParamCount函數。其中ParamStr(0)返回的是當前程序名,如C:TESTMYPROG.EXE,ParamStr(1)返回第一個參數,以此類推;ParamCount則是參數個數。示例如下: 

  var 
  I: Word; 
  Y: Integer; 
  begin 
    Y := 10; 
    for I := 1 to ParamCount do begin 
    Canvas.TextOut(5, Y, ParamStr(I)); 

    Y := Y + Canvas.TextHeight(ParamStr(I)) + 5; 
    end; 
  end; 

---- 七.DCU文件(編譯的庫單元)的重用 
---- (1)在interface里的uses子句中引用。如Windows,Dialogs等,要求被引用的DCU一定要放在Delphi4Lib子目錄中。 

---- (2)在implementation里的uses子句中引用。如果是自行編寫的DCU文件,應采用這一方式,并將被引用的DCU文件放入當前工程所在的子目錄中。 

---- 八.使用字符串資源的技巧 

---- 不同于其它資源,字符串資源不能直接編輯,需要先按格式編制一個文本文件,再用程序將其編譯成資源文件。下面用一個簡單的例子來說明。首先用文本編輯器編一個文件lb.rc,其內容如下: 

STRINGTABLE 
BEGIN 
1,"開始" 
2,"退出" 
END 
---- 然后, 找到Delphi的Bin子目錄下的BRCC32.EXE文件進行編譯, 命令格式為: BRCC32 LB.RC,編譯結束后即生成一個資源文件lb.res。要使用該資源文件,需要在單元文件implementation部分的開始處包括資源文件:{$R LB.RES}。在本例中,上面的字符串用于給一個命令按鈕更換Caption設置, 使用的函數是Windows API函數 LoadString,以下是使用實例: 
//在formCreat過程中: 
var 
txtCaption:array [0..255] of char; 
begin 
// 
if LoadString(HInstance,1,txtCaption,SizeOf 
(txtCaption))〉0 then 
btnStart.Caption:=StrPas(txtCaption); 
end; 
//在btnStartClick過程中: 
var 
txtCaption:array [0..255] of char; 
begin 
if LoadString(HInstance,2,txtCaption, 
SizeOf(txtCaption))〉0 then 
btnStart.Caption:=StrPas(txtCaption); 
end; 

---- 這樣就可以在程序運行時改變各種屬性,而不需要在程序中出現字符串。如果使用另一個Delphi函數LoadStr,會顯得更加簡單: 
var 
txtCaption:String; 
begin 
txtCaption:=LoadStr(2); 
if txtCaption〈〉′′ then 
btnStart.Caption:=txtCaption; 
end; 
---- 或許大家可以從以上的過程中看出, 使用123來標識一個字符串有些簡陋,也很容易出錯,那么怎么辦呢?我們可以采取像C++中使用字符串的方法,為每個字符串預定義一個ID,如: 
  const 
  IDC—START=1; 
  IDC—EXIT=2; 
---- 當然要把它放在一個unit里(類似于C++的.h文件) ,在使用的單元里再uses一下就可以了,這樣應用感覺是不是很爽呢? 
  txtCaption:=LoadStr(IDC—EXIT); 
---- 九.讓圖像旋轉 
---- Delphi中的Image構件可以顯示位圖,進一步,我們還可以用它完成位圖旋轉。 

---- 把一個點繞原點旋轉α角度后,新的坐標位置與原坐標位置的關系是: 

  X=x

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线不卡a资源高清| 国精产品一区一区三区mba桃花| 在线综合+亚洲+欧美中文字幕| 成人动漫视频在线| 福利一区二区在线观看| 国产精品一区二区黑丝| 国产一区二区三区免费看| 国产永久精品大片wwwapp| 国产一区二区三区精品视频| 国产一区二区视频在线| 懂色av一区二区三区蜜臀| 国产成人av一区| 99国产精品99久久久久久| 91在线无精精品入口| 91国偷自产一区二区三区观看| 99re这里都是精品| 欧美怡红院视频| 91精品国产综合久久福利| 日韩欧美另类在线| 国产日韩欧美精品综合| 国产精品美女久久久久久久久 | 日日夜夜免费精品视频| 亚州成人在线电影| 蜜臀a∨国产成人精品| 精品一区二区三区不卡 | 日本道色综合久久| 欧美日韩中文一区| 日韩欧美中文一区二区| 欧美激情一区三区| 亚洲一区二区三区自拍| 青青草成人在线观看| 国产成人亚洲综合a∨婷婷| 91在线观看成人| 777午夜精品视频在线播放| 久久久久久久网| 一区二区欧美国产| 国内精品免费**视频| 91欧美一区二区| 日韩欧美的一区| 成人欧美一区二区三区白人 | 国产精品综合一区二区三区| 91麻豆精品在线观看| 日韩一区二区影院| 亚洲乱码国产乱码精品精可以看 | 成人黄色电影在线| 亚洲成a人片在线观看中文| 亚洲国产婷婷综合在线精品| 美女视频免费一区| 国产xxx精品视频大全| 欧美性大战久久久| 国产婷婷精品av在线| 婷婷综合五月天| 成人av在线看| 精品国产一区久久| 亚洲一区二区影院| 成人不卡免费av| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲制服欧美中文字幕中文字幕| 国产乱妇无码大片在线观看| 91精品国产综合久久久久久久久久 | 麻豆成人综合网| 日本二三区不卡| 国产精品久久久久国产精品日日| 另类调教123区| 在线成人av影院| 亚洲精品国产视频| 成人免费视频app| 国产欧美日韩另类一区| 美女视频免费一区| 欧美一区二区高清| 午夜在线成人av| 精品视频全国免费看| 亚洲综合一区二区精品导航| 91一区一区三区| 国产精品国产a级| va亚洲va日韩不卡在线观看| 国产欧美日韩亚州综合 | 国产精品视频一二三区 | 国产乱人伦精品一区二区在线观看| 在线电影院国产精品| 五月天激情综合| 制服丝袜在线91| 免费人成网站在线观看欧美高清| 欧美另类高清zo欧美| 亚洲韩国一区二区三区| 欧美日韩在线播放| 亚洲成人久久影院| 7777精品伊人久久久大香线蕉完整版 | 国产日韩精品视频一区| 国产成人一区二区精品非洲| 中文字幕精品在线不卡| 成人免费高清视频在线观看| 亚洲国产精品激情在线观看| 成人高清免费观看| 亚洲自拍偷拍av| 日韩视频免费直播| 国产一区二区三区国产| 欧美国产乱子伦| 在线观看日韩高清av| 亚洲国产精品久久久男人的天堂| 欧美久久久久中文字幕| 裸体在线国模精品偷拍| 国产欧美一区视频| 在线视频国内自拍亚洲视频| 日韩av一级电影| 国产三区在线成人av| 日本伦理一区二区| 麻豆精品一区二区综合av| 欧美经典一区二区三区| 欧美亚洲一区三区| 国产在线视频一区二区三区| 1000部国产精品成人观看| 欧美日韩视频第一区| 国产麻豆成人传媒免费观看| 亚洲伦理在线精品| 日韩欧美在线网站| 91捆绑美女网站| 精品一区二区三区免费视频| 自拍偷拍国产精品| 日韩久久精品一区| 91麻豆文化传媒在线观看| 日本不卡视频在线| 亚洲视频在线观看一区| 精品久久久久av影院| 欧美在线高清视频| 高清不卡在线观看av| 美腿丝袜亚洲三区| 亚洲精品成人天堂一二三| 久久久久国产精品人| 在线不卡的av| 欧美主播一区二区三区| 国产91精品露脸国语对白| 日韩精品色哟哟| 一区二区三区日韩精品视频| 久久久精品天堂| 日韩一本二本av| 欧美精品高清视频| 91久久精品一区二区三区| 国产99一区视频免费| 蜜臀av一区二区在线观看| 香蕉av福利精品导航| 亚洲一级不卡视频| 亚洲激情图片一区| 最新国产成人在线观看| 国产欧美一区二区三区在线老狼| 欧美不卡一区二区| 91精品国产手机| 欧美精品在线视频| 欧美中文字幕不卡| 欧美中文一区二区三区| 在线欧美日韩国产| 欧美这里有精品| 在线亚洲+欧美+日本专区| 99精品国产91久久久久久 | 69堂国产成人免费视频| 一本高清dvd不卡在线观看 | 玉米视频成人免费看| 中文字幕一区日韩精品欧美| 国产精品福利一区二区| 国产日产欧美精品一区二区三区| 久久久久国产精品厨房| 26uuu精品一区二区| 久久嫩草精品久久久久| 国产欧美一区视频| 久久久亚洲国产美女国产盗摄| 日韩一级片在线观看| 欧美肥妇bbw| 精品国产sm最大网站免费看| 久久久久久久久免费| 国产精品天干天干在线综合| 中文字幕日本不卡| 一区二区久久久久久| 亚洲成人精品在线观看| 久久疯狂做爰流白浆xx| 国产高清亚洲一区| 99国产精品久久久久| 欧美三级视频在线播放| 7799精品视频| 欧美经典一区二区三区| 亚洲国产岛国毛片在线| 国产精品无码永久免费888| 国产精品成人一区二区三区夜夜夜| 亚洲美女视频在线观看| 日韩国产在线观看| 美女一区二区视频| 成人美女视频在线观看| 欧美三级欧美一级| 久久综合久久综合九色| 亚洲国产精华液网站w | 久久99精品一区二区三区三区| 国产成人精品www牛牛影视| 欧美中文字幕亚洲一区二区va在线| 日韩欧美一级精品久久| 国产精品国产a| 久久超碰97中文字幕| 99精品热视频| 精品国产乱码久久久久久牛牛 | 五月婷婷综合网| 成人国产精品免费观看| 7777精品伊人久久久大香线蕉超级流畅|