Главная страница
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.012 c
1-59780
Slavik
2003-05-06 18:12
2003.05.19
Как узнать размер файла. FileSize не подходит. :(


4-59986
AlexRush
2003-03-18 13:25
2003.05.19
своя GetModuleHandle


3-59599
Evg12345
2003-04-28 09:02
2003.05.19
Как ускорить Locate?


14-59849
Ihor Osov'yak
2003-05-01 00:45
2003.05.19
Backdoor.Death.26


4-59990
DimG
2003-03-19 16:16
2003.05.19
как отловить смену положения курсора в TEdit?