treeview自動從表中添加標題和列值做目錄的方法2

treeview自動從表中添加標題和列值做目錄的方法2,該方法是借鑒萬一老師的

http://www.cnblogs.com/del/archive/2008/05/15/1114450.html

?

首先界面上添加treeview組件,然后在treeview的onchange事件里這樣寫:

因為要用到定義個過程,需要在接口聲明里引用

 
  private{ Private declarations }/// <summary>/// 刷新左側treeView/// </summary>procedure RefreshLeftTree(Sender: TObject);public{ Public declarations }end;
 
procedure TForm3.RefreshLeftTree(Sender: TObject);
vari: Integer;node: TTreeNode;List: TStringList;s,fieldName: string;
begin//刷新前全部清空原來的列表
  TreeView1.Items.Clear;{建立 List}List := TStringList.Create;List.Sorted := True;           {指定排序}List.Duplicates := dupIgnore;  {避免重復}{把數據加入到 TreeView}for i := 0 to frmDataPool.qry需要做的事.FieldDefs.Count - 1 dobeginfieldName := frmDataPool.qry需要做的事.FieldDefs[i].Name;if not 'ID說明附件事情'.Contains(fieldName) thenbeginnode := TreeView1.Items.Add(nil, fieldName); {字段名}{為避免數據重復, 先把數據給 List}List.Clear;frmDataPool.qry需要做的事.First;while not frmDataPool.qry需要做的事.Eof dobeginList.Add(frmDataPool.qry需要做的事.FieldByName(fieldName).AsString);frmDataPool.qry需要做的事.Next;end;{把 List 中的數據加入到 TreeView}for s in List dobeginTreeView1.Items.AddChild(node, s);end;end;end;List.Free;
end;

且增加新記錄后也要刷新下目錄才合理

procedure TForm3.Button3Click(Sender: TObject);
begin
Form4.ShowModal;//showmodal可以確保這個窗口關閉后才執行下一步
//增加后刷新下
RefreshLeftTree(Sender);
end;

?

onchange的觸發事件代碼:

procedure TForm3.TreeView1Change(Sender: TObject; Node: TTreeNode);
beginif Node.Parent <> nil thenbegin{下面的 Filter 其實就是 SQL 查詢語句, 如果用其他數據庫替換就是}frmDataPool.qry需要做的事.Filter := Node.Parent.Text + '=''' + Node.Text + '''';frmDataPool.qry需要做的事.Filtered := True;end else frmDataPool.qry需要做的事.Filtered := False; {選字段名時取消過慮}
end;

?

 

轉載于:https://www.cnblogs.com/chuangyiyuan/p/6042193.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270531.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270531.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270531.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux常用運維命令筆記

今天給大家整理一下Linux常用的命令&#xff0c;希望對大家能有所幫助&#xff01;MYSQL相關1、查看mysql版本status; select version()2、 mysql啟動命令#01 使用 service 啟動&#xff1a;service mysqld start (5.0版本) service mysql start (5.5.7版本) #02 使用 mysqld 腳…

java 異常 過濾器_在過濾器Filter中拋出一個全局異常可以捕獲的異常

1、創建自定義異常public class TokenException extends RuntimeException {private static final long serialVersionUID 1L;private Integer errCode;private String message;public TokenException(Integer errCode){this.errCode errCode;this.message ExceptionEnum.ge…

php對二維數據進行排序

PHP一維數組的排序可以用sort()&#xff0c;asort(),arsort()等函數&#xff0c;但是PHP二維數組的排序需要自定義。方法一&#xff1a;(經驗證&#xff0c;成功) 作用&#xff1a;對二維數組進行指定key排序參數&#xff1a;$arr 二維數組 &#xff0c;$shortKey 需要排序的列…

電腦知識:如何將舊電腦文件遷移到新電腦中,包括操作系統

將舊電腦中的文件和操作系統全部轉移到新電腦中&#xff0c;一般可以借助分區助手、磁盤精靈或者GHOST等磁盤工具。為了提高數據傳輸速度&#xff0c;可以將舊電腦的硬盤拆下安裝到新電腦&#xff0c;然后使用PE工具盤引導電腦進入PE系統中&#xff0c;將舊電腦硬盤中的數據借助…

判斷是否為自然數java_java判斷輸入的是否是自然數

/** * 編寫一個Java應用程序的方法&#xff0c;該方法接收從鍵盤輸入的自然數: * 如果輸入的數不是自然數。拋出異常&#xff0c;提示“請正確輸入數字!”&#xff0c;然后繼續等待用戶輸入。 * 如果輸入的數為正數,則顯示這個數,程序繼續運行。 * 如果輸入為負數&#xff…

瀏覽器插件:一款解決谷歌瀏覽器吃內存神器插件

Chrome瀏覽器是大部分開發者必備的瀏覽器&#xff0c;它的主要有點有便于調試、啟動快、無廣告。但是谷歌瀏覽器也有自己的缺點&#xff0c;Chrome瀏覽器對系統內存的占用太大了&#xff0c;每打開一個頁面都會占用系統內存。如果你的瀏覽器一下子打開幾十個網頁&#xff0c;不…

java stdin 和stdout_對stdin,stdout 和STDOUT_FILENO,STDIN_FILENO的學習

在unix系統調用中,標準輸入描述字用stdin,標準輸出用stdout,標準出錯用stderr表示,但在一些調用函數,引用了STDIN_FILENO表示標準輸入才,同樣,標準出入用STDOUT_FILENO,標準出錯用STDERR_FILENO.他們的區別&#xff1a;stdin等是FILE *類型&#xff0c;屬于標準I/O&#xff0c;…

java多線程之hashmap concurrenthashmap的狀態同步

最近在高并發的系統中發現&#xff0c;concurrenthashmap除了大家熟知的避免循環期間發生ConcurrentModificationException異常外&#xff0c;還有重要的一點是Retrievals reflect the results of the most recently completed update operations holding upon their onset&…

電腦軟件:推薦兩款好用的文件重復檢測軟件

??作者主頁&#xff1a;IT技術分享社區 ??作者簡介&#xff1a;大家好,我是IT技術分享社區的博主&#xff0c;從事C#、Java開發九年&#xff0c;對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽&#xff1a; 數據庫領域優質創作者&#x1f3c6;&#x…

APP技巧:微信中這6個設置建議關閉,可以防止個人信息或將全暴露

目錄 01、 開啟添加好友驗證功能 02、 添加“我”的方式 03、不讓他&#xff08;她&#xff09;看 04、允許陌生人查看10條朋友圈 05、 設置查看朋友圈范圍 06、微信授權管理 相信提到微信&#xff0c;大家基本每天都在用&#xff0c;如今微信已經成為了我們社交軟件中的第一大…

lessc_Less 命令行用法

使用命令行&#xff0c;我們可以將 .less 文件編譯為 .css 。安裝lessc以供全局使用以下命令用于使用npm(node package manager)安裝lessc&#xff0c;以使less在全局可用。npm install less -g您還可以在包名稱后面添加特定版本。 例如: npm install less1.6.2 -g安裝Lessc用于…

硬件知識:內存單根16G和兩根8G差別有多大?

關于內存單根16G和兩根8G的差別&#xff0c;小編覺得這些事實&#xff0c;你得知道&#xff01; 論單根16G和兩根8G的區別&#xff01; 內存單通道和雙通道&#xff0c;大家都有聽過吧&#xff01; 理解起來很簡單&#xff0c;一個單通道&#xff0c;只能進行單向傳輸數據&…

極光推送總結:

官方文檔&#xff1a; http://docs.jiguang.cn/jpush/client/Android/android_sdk/ 手動集成步驟&#xff1a; 解壓縮 jpush-android-release-2.x.y.zip 集成壓縮包。復制 libs/jpush-sdk-2.x.y.jar 到工程 libs/ 目錄下。復制 libs/(cpu-type)/libjpush2xy.so 到你的工程中存放…

操作系統:Win10的沙盒是什么,如何使用,看完你就懂了

Win10操作系統新增的windows沙盒是一種安全機制&#xff0c;為執行中的程式提供的隔離環境。通常是作為一些來源不可信、具有破壞力或無法判定程序意圖的應用程序提供實驗之用。很多網友想要通過沙盒運行一些未知的程序&#xff0c;但是不知道windows沙盒如何開啟使用&#xff…

線程的調度

http://blog.chinaunix.net/uid-26430381-id-3746859.html 這篇文章解釋的很好轉載于:https://www.cnblogs.com/yzjT-mac/p/6054517.html