TListBox TListView TTreeView 可以直接存对象 和指针

TListBox  TListView 都是可以通过通过.AddItem(Item: string; AObject: TObject); 来存储对象

  listview 类似 gridview , 表现很丰富, 可以显示图标,有多列

  LISTBOX 很简单, 就一列,就是简易的 COMBOBOX

     《TTreeNode添加数根,子树根,任何一个TTreeNode可以存指针,查找》

而TTreeView 可以通过

function TTreeNodes.AddChild(Parent: TTreeNode; const S: string): TTreeNode;
function TTreeNodes..Add(Sibling: TTreeNode; const S: string): TTreeNode;
function TTreeNodes..AddObject(Sibling: TTreeNode; const S: string;Ptr: TCustomData): TTreeNode; //TCustomData就是指针
.Items.Add(  ).Data :=存的指针

 

总结:它们都可以存放对象,这样做左边的导航条

TListView 存窗体,取窗体方法:

frmReleateGQAccount := TfrmReleateGQAccount.Create(nil);
  self.lvNavBar.AddItem('账户设置',frmReleateGQAccount); //存进去
  for name in SysSetingFormManager.SysSetingForms.Keys do
  begin
    self.lvNavBar.AddItem(name,SysSetingFormManager.SysSetingForms[name]);

  end;
    lvNavBar.Items[0].Selected := True; //指定第一个
    
    
procedure TfrmSystemSetting.lvNavBarSelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
var
  frm:TForm;
begin
  if(not Selected) then exit;
    frm:=TForm(item.Data); //是通过这样取值的
  if(not Assigned(frm)) then exit;
    ShowForm(frm);
end;

procedure TfrmSystemSetting.ShowForm(frm:TForm);
begin
  frm.Parent := Self.scrlbx1; //将窗体放在 TScrollBox 上面
  frm.Align := alClient;
  frm.show;
  Self.scrlbx1.VertScrollBar.Position:=0;
end;

 

   

posted @ 2016-08-19 17:55  海蓝7  阅读(219)  评论(0编辑  收藏  举报