Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Вниз
treeview + объект Найти похожие ветки
← →
redlord (2005-02-18 14:35) [0]Всем приве
народ как в items компонента treeview повесить обект
а потом в обработчике TreeView1Click им воспользоватся
обект примерно такой
type
Tmyobj = class
n:integer;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
node:ttreenode;
n:integer;
begin
for n:=0 to 10 do
begin
myobj:=tmyobj.Create;
myobj.n:=n;
node:=treeview1.Items.AddChild(nil,"qqq");
treeview1.Items.AddChildObject(node,"obj",??????????????????);
end; end;
procedure TForm1.TreeView1Click(Sender: TObject);
begin
?????????????????????????
end;
← →
begin...end © (2005-02-18 14:41) [1]> redlord (18.02.05 14:35)
> treeview1.Items.AddChildObject(node,"obj",??????????????????);
TreeView1.Items.AddChildObject(node, "obj", myobj);
← →
Семен Сорокин © (2005-02-18 15:55) [2]гы, а не проще ли так написать:
TreeView1.Items.AddChildObject(node, "obj", TObject(n));
вместо того чтобы создавать объект с единственным integer-полем.
ЗЫ. Кстати эти объекты и убивать надо, чтобы не было утечки памяти.
← →
redlord (2005-02-18 16:58) [3]объект с одним полем ето чтоб пример не загромождать
а убивать объекты буду вместе с Itemsами
а как обратится к объекту, на итемсе которого был произведен клик
← →
Eraser © (2005-02-18 17:01) [4]Tmyobj(TreeView1.Selected.Data).метод_или_свойство
← →
redlord (2005-02-18 17:10) [5]To Eraser
спасибо
ето то что надо
← →
Набережных С. © (2005-02-18 18:32) [6]
> redlord
У TTreeView есть событие OnCreateNodeClass. ВместоTmyobj = class
можно сделать такTmyobj = class(TTreeNode)
А потом передавать этот класс в обработчике OnCreateNodeClass. Тогда сам итем будет содержать все необходимые свойства и методы. Иногда это бывает удобнее, чем использовать свойство Object, особенно если требуется использовать несколько разных классов.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.05 c