Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.19;
Скачать: CL | DM;

Вниз

TTreeNode   Найти похожие ветки 

 
GIL ©   (2003-05-06 16:37) [0]

Как добавить в TTreeNode два свойства типа String.
желательно с примером, хотя бы одного, как делать процедуры указанные в read и write.


 
neXt ©   (2003-05-06 16:49) [1]

в TTreeNode добавлять свойства категорически не рекомендуется

а вот сделать наследника TTreeNode и добавить в него сколько угодно свойств можно и даже очень


TMyTreeNode = class(TTreeNode)
private
FStr1: String;
FStr2: String;
public
property Str1: String read FStr1 write FStr1;
property Str2: String read FStr2 write FStr2;
end;


Потом, чтобы такой класс использовать в качестве узла TTreeView нужно в обработчике события TTreeView.OnCreateNodeClass
написать примерно следующее


NodeClass := TMyTreeNode;


А потом чтобы у данного конкретного узла достучаться до своих свойств нужно тип узла напрямую приводить к своему
например так


var
s1, s2: String;
begin
s1 := TMyTreeNode(TreeView1.TreeView1.Selected).Str1;
TMyTreeNode(TreeView1.TreeView1.Selected).Str2 := s1;
s2 := TMyTreeNode(TreeView1.TreeView1.Selected).Str2;
...




 
GIL ©   (2003-05-06 16:54) [2]

а если я изменяю стандартный класс TTreeNode? (я копирую ф-л comctrls в дирректорию программы и там его изменяю)


 
wildbit   (2003-05-06 16:59) [3]

Свойством Data не хочешь попользоваться?


 
evvcom ©   (2003-05-06 17:00) [4]

Лучше не надо трогать стандартных юнитов. Это впоследствии скажется как минимум на переносимости кода.


 
GIL ©   (2003-05-06 17:04) [5]

а что это за св-во такое Data? что оно может. А за переносимость кода я не боюсь, т.к. я КОПИРУЮ изменяемые стандартные ф-лы в директорию программы, и они становятся тем самым кодом!


 
wildbit   (2003-05-06 17:09) [6]

Свойство Data позволяет хранить указатель привязанный к TTreeNode
TMyStr = RECORD
s1,s2 : string
end;

var
my : ^TMyStr;
begin
New(my);
node.Data := Pointer(my);

юзаешь

TMyStr(node.Data).s1 := "TEST";
end;


 
evvcom ©   (2003-05-06 17:27) [7]


> А за переносимость кода я не боюсь, т.к. я КОПИРУЮ изменяемые
> стандартные ф-лы в директорию программы, и они становятся
> тем самым кодом!

Неверно мыслишь. Вот ты сейчас на D6. Перепишешь ты этот стандартный unit, а завтра поставишь D7 (D8 и т.д. какая разница) и unit этот уже не пойдет! Придется брать такой же из след. версии и вносить те же изменения туда. А это не всегда просто. Лучше используй выше приведенные советы, не влазя в стандартный юнит.



Страницы: 1 вся ветка

Текущий архив: 2003.05.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
4-59983
Consul
2003-03-19 13:18
2003.05.19
Чужое меню


9-59523
Crazy Max
2002-12-14 00:48
2003.05.19
OpenGl


3-59593
Arkady
2003-04-28 08:23
2003.05.19
Вставка большого файла в базу Access


14-59850
Дмитрий К.К.
2003-04-30 07:29
2003.05.19
Именинники 30 апреля


1-59702
miha po
2003-05-07 22:36
2003.05.19
АХТУНГ !!! ХЕЛП !!! qtintf70.dll домагаеться...