Delphi的EhLib控件的使用說明_第1頁
Delphi的EhLib控件的使用說明_第2頁
Delphi的EhLib控件的使用說明_第3頁
Delphi的EhLib控件的使用說明_第4頁
Delphi的EhLib控件的使用說明_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、EhLib控件的使用說明一. DBGridEh組件: 1. 屬性。2. 使用統(tǒng)計欄功能(1 設(shè)置統(tǒng)計欄行數(shù),將DBGridEh.FooterRowCount := 1(2 設(shè)置激活統(tǒng)計功能,將DBGridEh.SumList.Active := True;(3 選擇所統(tǒng)計字段的統(tǒng)計方式,如將Columnsn.Footer.ValueType := vtSum;(4 3. 復(fù)雜標(biāo)題.    (1)標(biāo)題行可設(shè)為2行以上高度,并可以為多列創(chuàng)建一個共同的父標(biāo)題行。為實現(xiàn)這個效果,需在各個列標(biāo)題屬性中以“”分隔父標(biāo)題和子標(biāo)題,如辦公用品包括代碼和名稱兩部分,具體屬性設(shè)置如下:usem

2、ultititile=true;titlelines=2DBGridEh.Columns0.Title.Caption := '辦公用品|代碼'DBGridEh.Columns1.Title.Caption := '辦公用品|名稱' (2)標(biāo)題行顯示圖片    首先添加一個imagelist組件img1并在其中添加一組bmp,ico格式的圖片。然后將DBGridEh的TitleImages設(shè)置為img1.最后在需要顯示圖片的列標(biāo)題的imageindex中設(shè)置需要顯示的img1中圖片的序號。4. 實現(xiàn) DBGridEh 隔行分色顯示p

3、rocedure TForm1.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; State: TGridDrawState;Begin    if DBGridEh1.SumList.RecNo mod 2 = 1 then      Background := $00FFC4C4  Else      Background := $00FFDDDD;

4、end;5. DBGridEh 在某些條件下某行顯示特定顏色procedure TForm1.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; State: TGridDrawState;begin  /在 name 字段值為 aaa 的行設(shè)置行背景色(ado 設(shè)置情況下)  if ADOQuery1.FieldByName('name'.AsString = 'aaa' then  

5、60;   Background := $00FFC4C4  /在 xm 字段值為 Li ming 的行設(shè)置行背景色(bde 設(shè)置情況下)  else if DBGridEh1.DataSource.DataSet.FieldByName('xm'.AsString = 'Li ming'  then      Background := $00FFC4C4  Else      Background := $00FFDDDD;end;  6.

6、 在dbgrideh中允許選擇多行,如何知道哪些行被選中?是個BOOKMARK類型的屬性。SelectedRows: TBookmarkListprocedure TForm1.Button1Click(Sender: TObject;vari, j: Integer;s: string;beginif DBGrid1.SelectedRows.Count>0 thenwith DBGrid1.DataSource.DataSet dofor i:=0 to DBGrid1.SelectedRows.Count-1 dobeginGotoBookmark(pointer(DBGrid1.

7、SelectedRows.Itemsi;for j := 0 to FieldCount-1 dobeginif (j>0 then s:=s+', 's:=s+Fieldsj.AsString;end;Listbox1.Items.Add(s;s:= ''end;end;7. 顯示自動提示設(shè)置DBGridEh控件的showhint屬性為true,然后設(shè)置需要顯示自動提示的字段的ToolTips屬性為True。8. 自動排序。設(shè)置OptionsEh.dbgAutoSortMarking為true,字段的Title.titleButton屬性為true。9.

8、 根據(jù)不同字段值顯示相應(yīng)的小圖片    如根據(jù)庫存材料的不同狀態(tài)在數(shù)據(jù)單元格中顯示相應(yīng)圖片,具體設(shè)置如下:    添加一個imagelist組件img1并在其中添加一組bmp,ico格式的圖片。然后將需要顯示圖片的列的imagelist屬性設(shè)置為img1;在keylist屬性中添加實際數(shù)據(jù)存儲值,一行為一個值,切記一定要與imagelist中圖片順序一一對應(yīng),否則會張冠李戴,面目全非。還可在picklist中添加提示信息,也要求是一行為一個值,并設(shè)tooltip為true,那么,運行時當(dāng)鼠標(biāo)移動到該數(shù)據(jù)單元格時在顯示圖片的同時還顯示提示信息,怎么樣,功能

9、夠強大吧!可使用空格鍵或鼠標(biāo)切換下一張圖片,圖片切換的同時也改變了實際存儲數(shù)據(jù)值。也可通過shift+空格或鼠標(biāo)切換為上一張圖片。這樣就實現(xiàn)了上下兩個方向圖片切換10. 顯示字段的單列或多列下拉列表(1)單列:設(shè)置好DBGrid中該字段的PickList字符串列表、初始的列表行數(shù)DropDownRows即可。(2)多列:根據(jù)單元格字段值顯示與其相關(guān)的其它表字段內(nèi)容。首先需在當(dāng)前表中新建立一個lookup型字段,把DBGriEh相應(yīng)的列指向lookup字段,然后,設(shè)置相應(yīng)列的DropDownBox的各項屬性并設(shè)置改列的lookupdisplayfields屬性(顯示的列,用分號隔開),而且返回字

10、段必須作為其中的第一項。具體設(shè)置如下:1 放置兩個Query組件和一個DataSource組件,其中一個用于查詢DBGridEh需要的數(shù)據(jù),另一個用于查詢關(guān)聯(lián)表。2 在連接到DBGridEh控件的Query中,Add相關(guān)字段。并為需要添加的字段設(shè)置lookup型列,field type為lookup;設(shè)置dataset為查詢關(guān)聯(lián)表的Query組件,key Fields為關(guān)鍵字段,lookup keys為聯(lián)結(jié)字段,Result Field為顯示在列表中的結(jié)果字段(返回字段)。3 然后,將需要設(shè)置下拉列表的字段的ChachedUpdates屬性設(shè)置為True,為該Query控件設(shè)置OnUpdate

11、Record事件,內(nèi)容可以為空,但是至少留一個“/”。4 放置DBGridEh控件,進(jìn)行相關(guān)設(shè)置。然后添加相關(guān)字段,設(shè)置剛才添加的lookup字段的AlwaysShowEditButton為True。5 進(jìn)行下拉列表相關(guān)屬性的設(shè)置,在字段的LookupDispalyFields屬性設(shè)置列表中需要顯示得字段,如:dropdownshowtitlestrue dropdownsizingtruedropdownwidth-111. 顯示日歷下拉列表    Date 和 DateTime類型字段值均可以此形式顯示。外觀與編輯框無異,當(dāng)點擊該單元格時,右側(cè)會出現(xiàn)“”符號,點擊之即可

12、出現(xiàn)日歷下拉列表,inplace 編輯器將顯示下拉按鈕以顯示顯示下拉計算器。有時不希望出現(xiàn)日歷下拉列表,只需設(shè)置Column.ButtonStyle屬性為 cbsNone即可,此方法同樣適用于其它組件不以特殊外觀顯示的情況。12. 3D或平面外觀效果設(shè)置flat為true則為平面外觀效果.13. 鎖定多列不滾動當(dāng)表格水平方向信息在一屏幕顯示不下時,此項功能非常有用。例如,工資表格中包含姓名、基本工資、績效工資等信息一屏幕顯示不下,需要通過移動水平滾動條顯示下一屏信息。如果不鎖定關(guān)鍵字段列如姓名,則移動到下一屏?xí)r就不知道此條記錄對應(yīng)的姓名。因此,在實際應(yīng)用中經(jīng)常需鎖定多列不滾動。  &

13、#160; 例:姓名字段為表格第二列,則設(shè)置FrozenCols=2.這樣當(dāng)一屏幕顯示不下,通過移動水平滾動條顯示下一屏信息時,表格前兩列不滾動,作為參照列。14. 導(dǎo)入/導(dǎo)出數(shù)據(jù)    導(dǎo)入/導(dǎo)出數(shù)據(jù)在實際處理過程中是比較煩瑣的。但是Enlib3.0提供了一系列函數(shù)讓你輕松實現(xiàn)此功能,而且支持的文件格式很多:Text, Csv, HTML, RTF, XLS 和內(nèi)部數(shù)據(jù)格式。除此之外,還可對任意選擇的數(shù)據(jù)區(qū)域進(jìn)行操作。函數(shù)如下:Pascal: SaveDBGridEhToExportFile(TDBGridEhExportAsText,DBGridEh1,'c:t

14、empfile1.txt',False;C+: SaveDBGridEhToExportFile(_classid(TDBGridEhExportAsText,DBGridEh1,"c:tempfile1.txt",false;說明:其中false參數(shù)表示導(dǎo)出的是選中的局部數(shù)據(jù)區(qū)域數(shù)據(jù),true則為整個表格數(shù)據(jù)。   例:將當(dāng)前表格中數(shù)據(jù)導(dǎo)出為EXCEL等格式文件。    在窗體中添加一個SaveDialog組件和“導(dǎo)出”按鈕B_exp,在“導(dǎo)出”按鈕的click事件中添加如下代碼:procedure TForm1.B_exp

15、Click(Sender: TObject;var   ExpClass:TDBGridEhExportClass;  Ext:String;Begin  SaveDialog1.FileName := 'file1'  if (ActiveControl is TDBGridEh thenif SaveDialog1.Execute then    begin      case SaveDialog1.FilterIndex of       

16、1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt' end;        2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv' end;        3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm' end;        4: begin E

17、xpClass := TDBGridEhExportAsRTF; Ext := 'rtf' end;        5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls' end;else        ExpClass := nil; Ext := ''    end;    if ExpClass <> nil then    begin

18、      if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName-2,3 <> UpperCase(Ext then        SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;      SaveDBGridEhToExportFile(ExpClass,DBGridEh1,SaveDialog1.FileName,Fa

19、lse;      /其中false為局部數(shù)據(jù)    end;  end;end;15. 將存在的DBGrid組件轉(zhuǎn)換為DBGridEh組件。具體步驟如下: 1、在Delphi IDE下打開TDBGrid組件. 2、通過組合鍵Alt-F12將form 以文本方式顯示;  3、將所有TDBGrid 對象名改變?yōu)?TDBGridEh對象名,如:DBGrid1: TDBGrid改為 DBGrid1: TDBGridEh; 4、再次通過組合鍵Alt-F12將文本方式恢復(fù)為form 顯示; 5、

20、將form各相關(guān)事件中定義的所有TDBGrid改為TDBGrideh,如DBGrid1: TDBGrid改為DBGrid1: TDBGridEh; 6、重新編譯應(yīng)用程序。16. STFilter的使用。(?(1)在DBGridEh中設(shè)置local值為True(具體作用還沒有體會出來- -,設(shè)置Visible為True。(2)在Columns中的STFilter下的屬性中,設(shè)置ListSource為用于取下拉列表的DataSource,ListField為取下拉列表內(nèi)容的字段。二. DBSumList組件:DBSumList組件可以在可視動態(tài)變化數(shù)據(jù)集中進(jìn)行記錄統(tǒng)計。但是上面的DBGridEh的統(tǒng)計功能并不需要這個組件。使用時先在設(shè)置DataSet關(guān)聯(lián)到Query組件,然后SumCollection中設(shè)置相關(guān)的需要統(tǒng)計的數(shù)據(jù)字段,然后寫 SumListChanged 事件來指定在被統(tǒng)計數(shù)據(jù)發(fā)生改變后所要做的操作。三. PrintDBGridEht組件:1. 屬性。AfterGridText:表尾文字。BeforeGridText:表頭文字。PageFooter:設(shè)置頁腳。Pa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論