Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Пару вопросов по 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.04 c
1-1097160138
Dextor
2004-10-07 18:42
2004.10.24
Проблема открытия текстового файла, если в нем есть кавычки!


4-1095781410
Th
2004-09-21 19:43
2004.10.24
Проблема с вызовом CreateProcess из сервиса


1-1097249438
greenrul
2004-10-08 19:30
2004.10.24
ActionToolbar и ActionMainMenu - иконки разных размеров


14-1096615495
TUser
2004-10-01 11:24
2004.10.24
Рихтер для Линукса ect


1-1097174259
RedDragon
2004-10-07 22:37
2004.10.24
Как проверить папку на наличие файл с определённым именем........