Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Вниз

Пару вопросов по VirtualStringTree и VirtualDrawTree   Найти похожие ветки 

 
NeyroSpace ©   (2004-10-08 09:34) [0]

1.VirtualStringTree
Обработчик VirtualStringTree1GetText(...):
begin
PNodeData := Sender.GetNodeData(Node);
CellText := PNodeData.Text;
end;
При этом в дереве отображается 2е одинаковые надписи друг за другом. Столбцов нет, проверял. Где подвох?

2.VirtualDrawTree
Более гибкого конструктора дерева не встречал! Однако появился вопрос:
Если отключить отрисовку [+] и фокуса выделения узла, то все равно срабатывает двойной клик на раскрытие ветки. Причем срабатывает в том месте, где раньше отрисовывался пустой прямоугольник фокуса.
Как задать свои координаты и размер прямоугольнику фокуса?


 
Reindeer Moss Eater ©   (2004-10-08 09:35) [1]

При этом в дереве отображается 2е одинаковые надписи друг за другом. Столбцов нет, проверял. Где подвох?

Подвоха нет.
В обеих блоках одинаковые данные.


 
NeyroSpace ©   (2004-10-08 09:54) [2]

>Reindeer Moss Eater ©   (08.10.04 09:35) [1]
А можно поподробнее? Что за блоки?

procedure TForm1.VirtualStringTree1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
begin
PNodeData := Sender.GetNodeData(Node);
CellText := PNodeData.Text;
end;

В обработчик только столбцы передаются...


 
Reindeer Moss Eater ©   (2004-10-08 09:56) [3]

С каждой нодой связан блок данных.
У тебя две ноды.
Обе ссылаются на блок(и) в которых текст один и тот же.


 
NeyroSpace ©   (2004-10-08 10:01) [4]

Добавляю 1 узел следующим образом:
VirtualNode := VirtualStringTree1.AddChild(nil);
PNodeData := VirtualStringTree1.GetNodeData(VirtualNode);
PNodeData.Text := "text1";

на форме появляется:
text1 text1

Выделяется фокусом как один узел.


 
Reindeer Moss Eater ©   (2004-10-08 10:06) [5]

Как объявлен тип, для которого создан указательный тип PNodeData?

И чему равно NodeDataSize у VirtualStringTree1?


 
NeyroSpace ©   (2004-10-08 10:11) [6]

type
TNodeData =  record
 Text: String[10];
end;
PNodeData = ^TNodeData;

var
 Form1: TForm1;
 VirtualNode:PVirtualNode;
 NodeData:TNodeData;

implementation

{$R *.DFM}

procedure TForm1.VirtualStringTree1InitNode(Sender: TBaseVirtualTree;
                ParentNode, Node: PVirtualNode;
                var InitialStates: TVirtualNodeInitStates);
var PND:PNodeData;
begin
end;

procedure TForm1.FormCreate(Sender: TObject);
var PND:PNodeData;
begin
VirtualStringTree1.NodeDataSize := SizeOf(TNodeData);
VirtualNode := VirtualStringTree1.AddChild(nil);
PND := VirtualStringTree1.GetNodeData(VirtualNode);
PND.Text := "text1";
end;

procedure TForm1.VirtualStringTree1GetText(Sender: TBaseVirtualTree;
                 Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
                 var CellText: WideString);
var PND:PNodeData;
begin
PND := Sender.GetNodeData(Node);
CellText := PND.Text;
end;

end.


 
Reindeer Moss Eater ©   (2004-10-08 10:19) [7]

У меня этот код рисует все как надо.


 
NeyroSpace ©   (2004-10-08 10:45) [8]

Млин... Создал проект заново все нормально. Хотя выдляется уже не вся строка а только надпись, наверное где-то что-то изменил в опциях.

А Что касается отрисовки прямоугольника фокуса в VirtualDrawTree?
Как изменить его размер при собственной отрисовке?


 
Reindeer Moss Eater ©   (2004-10-08 10:47) [9]

Про DrawTree ничего не скажу. Никогда не имел дело.



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

Форум: "Основная";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
1-1097341596
Alexey_v
2004-10-09 21:06
2004.10.24
расположить приложение на рабочем столе между папками и обоями


14-1096711272
Piter
2004-10-02 14:01
2004.10.24
Почему не срабатывает установка WindowsState?


3-1095924545
Ш-К
2004-09-23 11:29
2004.10.24
EventAlerter в MSSQL (как в IB)


1-1097215825
V-Isa
2004-10-08 10:10
2004.10.24
Пишу скринсэйвер.


3-1095519919
Irene
2004-09-18 19:05
2004.10.24
Проблема с кириллицей





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