Форум: "Основная";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c