Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.011 c
3-59626
rosl
2003-04-29 06:51
2003.05.19
Как сохранить строку


3-59632
Mr.Fox
2003-04-29 07:51
2003.05.19
Как узнать добавлена ли новая запись???


3-59557
mihei
2003-04-25 13:14
2003.05.19
DBGridEh+Checkboxes


3-59573
Анна
2003-04-27 20:07
2003.05.19
Неприятие русского


9-59526
Plague
2002-12-12 18:05
2003.05.19
IDirect3DRM





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский