Главная страница
    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.45 MB
Время: 0.012 c
1-59740
Skalp
2003-05-06 09:53
2003.05.19
Как поместить в файл ресурса (*.res) поместить файл *.bmp ...


14-59942
WM_IGOR
2003-04-26 19:37
2003.05.19
Компоненты из Builder в Delphi


1-59781
prodan_andry
2003-05-05 12:37
2003.05.19
Как написать свой компонент...


14-59885
ZeroDivide
2003-04-28 17:01
2003.05.19
Кто нибудь писал софт для TV - Tuner на чипсете BT878?


3-59601
Alpine
2003-04-24 13:58
2003.05.19
Посоветуйте компоненты для доступа к базе MS SQL.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский