DBGRIDEH如何添加函数 |
尚未結案
|
tangfengsh
一般會員 發表:5 回覆:3 積分:1 註冊:2008-11-10 發送簡訊給我 |
DBGRIDEH如何添加函数
比如说排序,我想在每个以后用到的DBGRIDEH里的TitleBtnClick事件都有下面这个函数.而不用添加了这个事件再手动加下面的代码. procedure TfrmXXXX.DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); var sortstring:string; begin //进行排序 with Column do begin if FieldName = '' then Exit; case Title.SortMarker of smNoneEh: begin Title.SortMarker := smDownEh; sortstring := Column.FieldName ' ASC'; end; smDownEh:sortstring:= Column.FieldName ' ASC'; smUpEh:sortstring:=Column.FieldName ' DESC'; end; //数据集排序。 try if qryGetCKXX.active=true then qryGetCKXX.Sort:=sortstring; //dataset为实际数据集变量名 except // end; end; end; 还有就是PrintDBGridEh1出来的预览表单里,我想打印,打印设置……最后加个导出按钮,事件形如这样: SaveDialog1.FileName := 'file1'; if SaveDialog1.Execute then begin case SaveDialog1.FilterIndex of 1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end; 2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end; 3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end; 4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end; 5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end; else ExpClass := nil; Ext := ''; end; if ExpClass <> nil then begin if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then SaveDialog1.FileName := SaveDialog1.FileName '.' Ext; SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl), SaveDialog1.FileName,False); end; end; 但是这里的TDBGridEh(ActiveControl),怎么得到PrintDBGridEh1控件里的dbgridEH? |
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
這你要用到繼承, 將以下程式變成一個 Unit 要用的 Form 再 uses 或是安裝到 VCL 中
另外, 這問題應該是發問在 VCL 元件使用或設計討論區(Delphi) 才對吧? [code delphi] type TMyDBGrid = class(TDBGridEh) private procedure MyNewTitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); public constructor Create(AOwner: TComponent); override; end; constructor TMyDBGrid.Create(AOwner: TComponent); begin inherited Create(AOwner); OnTitleBtnClick:= MyNewTitleBtnClick; end; procedure TMyDBGrid.MyNewTitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh); var sortstring:string; begin //進行排序 with Column do begin if FieldName = '' then Exit; case Title.SortMarker of smNoneEh: begin Title.SortMarker := smDownEh; sortstring := Column.FieldName ' ASC'; end; smDownEh:sortstring:= Column.FieldName ' ASC'; smUpEh:sortstring:=Column.FieldName ' DESC'; end; //數據集排序。 try if qryGetCKXX.active=true then qryGetCKXX.Sort:=sortstring; //dataset為實際數據集變量名 except // end; end; end; [/code]
------
將問題盡快結案也是一種禮貌! |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |