---中國
+ 江蘇
-南京
-蘇州
-南通
+ 廣東
-廣州
-東皖
-臺州
添加LBL1,LBL2控制元件
在treeview中我已經建好上面的樹,請問在程式。 我點擊“江蘇”,如何使得LBL1得到 “江蘇”的值(標題),再單擊“南京”時,如何使得LBL2得到 “南京”這個值,而此時LBL1不變
謝謝!!
uj5u.com熱心網友回復:
是否國LBL1,LB2,只低效分別讀取一次值?uj5u.com熱心網友回復:
是否LBL1,LB2,只依次分別讀取一次值?要講清楚。uj5u.com熱心網友回復:
在treeview的onselect事件中用 selecteditem.hasChildNode(大概是這個名字)方法來判斷是否是葉節點。是葉節點就更新lbl2,否則就更新lbl1。
uj5u.com熱心網友回復:
再單擊“南京”時SelectedItem=“南京”
SelectedItem.Parent=“江蘇”
uj5u.com熱心網友回復:
點擊“江蘇”,selected.level=0再單擊“南京”時,selected.level=1
綜合這點和上條所說,就夠了。
uj5u.com熱心網友回復:
void __fastcall TForm1::TreeView1GetSelectedIndex(TObject *Sender,
TTreeNode *Node)
{
if (TreeView1->Selected->Level==1)
{
Edit1->Text=TreeView1->Selected->Text;
}
else if (TreeView1->Selected->Level==2)
{
Edit2->Text=TreeView1->Selected->Text;
}
}
uj5u.com熱心網友回復:
//估計樓主是要點擊節點之后,可以在lbl1和lbl2上顯示節點的資訊,界面更直觀一點procedure changeLBLCaption(Node:TTreeNode)
begin
if node.parent=nil then
//第一層,"中國",無需要處理
exit;
if node.hasChildNode then
//第二層,樓主要處理的
begin
lbl1.caption:=Node.Text;
lbl2.caption:='';
exit;
end
else begin
lbl1.caption:=Node.Parent.Text;
lbl2.caption:=Node.Text;
exit;
end;
end;
uj5u.com熱心網友回復:
1、設定全域變數KK,初始值1
2、TreeView的MouseUp事件:
procedure TShowTextFrm.TreeView1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var NowNode : TTreeNode;
VCL:TComponent;
begin
TreeMouthKeyUp; // 滑鼠的其它操作
NowNode:=TreeView1.Selected;
if NowNode.HasChildren then // 葉節點
begin
VCL := FindComponent('Label'+IntTostr(KK));
(VCL As TLabel).Caption:=NowNode.Text;
kk:=kk+1;
end;
end;
上述代碼,依次Label(幾十個)依次選取TreeView的值。
uj5u.com熱心網友回復:
先建立一個Treenode的類var
node:TTreenode;
之后用你建立的那個treeview
用 with treeview.items do
begin
node:=add(nil,'南京');
label1.text:=selected.text;
end;
uj5u.com熱心網友回復:
GetNodeAt(X, Y)轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/91673.html
標籤:數據庫相關
上一篇:opencv識別車輛與車距測量
下一篇:Delphi中報錯project index.EXE raised exception class emcideviceerro with message
