線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1531
推到 Plurk!
推到 Facebook!

treeview中如何查找字符串

答題得分者是:jackkcg
richcomp
中階會員


發表:18
回覆:66
積分:51
註冊:2002-10-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-21 13:00:01 IP:61.177.xxx.xxx 未訂閱
各位高手: 我做了一個會計科目的Treeview,資料很多,有四級明細科目,要實現查找指定字符串,請大家幫忙!
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-21 18:34:26 IP:61.221.xxx.xxx 未訂閱
此為轉貼文章 參考看看 DelphiDBGrid中實現下拉清單欄位編程的一種方法 -------------------------------------------------------------------------------- ---- 用delphi開發資料庫軟體,經常使用DBGrid控制項實現資料的輸入與顯示,像大家熟悉的Excel97、VFP中的BROWS就是採用了這種資料網格的形式。很多情況下,在進行資料登錄時,有些欄位只允許某幾個固定的條目,像學生檔案管理中學生的所在系別,只有學校固定好的幾個系,還有像學生的政治面貌等等,可否從一個下拉清單中進行選擇,從而方便輸入和避免輸入錯誤呢?,Delphi的資料網格控制項DBGrid支援的下拉清單編程可以實現此功能(見http://www.computerworld.com.cn/99/tips/9903/030302_05.asp),但有明顯的缺陷,就是使用不方便,?顯示某欄位的下拉清單需按兩次回車鍵,然後用滑鼠點擊下拉清單的下拉按鈕,下拉清單才能出現,輸入資料時總是按動滑鼠非常彆扭。下面介紹的下拉清單的實現方法可以在不修改DBGrid控制項或利用?子函數的基礎上實現下拉清單方便的開合,操作時不再需要按動滑鼠,最大限度的方便了資料登錄人員。 ---- 基本思路 ---- 利用一個浮動式功能表PopupMenu,浮動式功能表的各功能表條是用於選擇的相應條目。以此來實現下拉清單的功能。?了實現浮動式功能表與相應欄位的結合,還需要做以下的工作: ---- (1)在DBGrid控制項屬性中有PoppupMenu一欄,添入浮動式功能表名,此時,程式運行時,按滑鼠右鍵即可打開PoppupMenu進行選擇。 ---- (2)?使鍵盤控制PoppupMenu的開合還需將裝載DBGrid的表單的Keypreview屬性設?true,在DBGrid的KeyDown事件中寫入一事件,來控制PoppupMenu的開合的位置與顯示條件。 ---- 下面以一個學生資訊庫中的學生的系別?例(字串類型)?例,給出一個具體的例子: unitUnit1; interface uses Windows,Messages,SysUtils,Classes, Graphics,Controls,Forms,Dialogs, Db,Menus,DBTables,Grids,DBGrids; type TForm1=class(TForm) DBGrid1:TDBGrid; DataSource1:TDataSource; Table1:TTable; PopupMenu1:TPopupMenu; N1:TMenuItem; N2:TMenuItem; N3:TMenuItem; Table1XH:TStringField; Table1XM:TStringField; Table1XB:TStringField; N4:TMenuItem; procedureDBGrid1KeyDown (Sender:TObject;varKey:Word; Shift:TShiftState); procedureN1Click(Sender:TObject); procedureN2Click(Sender:TObject); procedureN3Click(Sender:TObject); procedureN4Click(Sender:TObject); private {Privatedeclarations} public {Publicdeclarations} end; var Form1:TForm1; implementation {$R*.DFM} procedureTForm1.DBGrid1KeyDown (Sender:TObject;varKey:Word; Shift:TShiftState); var LastEditCol:integer; begin LastEditCol:=DbGrid1.SelectedIndex; ifLastEditCol< > 2thenexit;//讓浮動式功能表只對第二列起作用 if(Key=VK_RETURN)//VK_***是您的熱鍵的虛鍵值 then PopupMenu1.Popup(336,222);//336,222浮動式功能表顯示的位置 end; procedureTForm1.N1Click(Sender:TObject); begin table1.Edit; table1.FieldValues[‘XB‘]:=‘物理系‘; table1.post; end; procedureTForm1.N2Click(Sender:TObject); begin table1.Edit; table1.FieldValues[‘XB‘]:=‘數學系‘; table1.post; end; procedureTForm1.N3Click(Sender:TObject); begin table1.Edit; table1.FieldValues[‘XB‘]:=‘電腦系‘; table1.post; end; procedureTForm1.N4Click(Sender:TObject); begin table1.Edit; table1.FieldValues[‘XB‘]:=‘中文系‘; table1.post; end; end.
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-04-28 16:23:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!