Ученик-кочегар
Группа: Участник
Сообщений: 3
|
При заполнении TVirtualStringTree 2-ым параметром функции AddChild() я ставлю указатель на объект моей структуры. При заполнении текста нод при помощи функцией GetNodeData() получаю указатель на структуру, одно из полей которой — текст ноды. Но в тексте отображается абракодабра. В чем дело? Вот код:
Unit1.h:
CODE |
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "VirtualTrees.hpp"
//---------------------------------------------------------------------------
struct nodeInfo
{
WideString name;
int type;
};
class TForm1 : public TForm
{
__published: // IDE-managed Components
TVirtualStringTree *VirtualStringTree;
void __fastcall VTGetText(TBaseVirtualTree *Sender,
PVirtualNode Node, TColumnIndex Column, TVSTTextType TextType,
WideString &CellText);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
|
Unit1.cpp:
CODE |
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "VirtualTrees"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
VirtualStringTree->NodeDataSize=sizeof(nodeInfo);
nodeInfo *ni;
ni= new nodeInfo();
ni->name="one";
ni->type=1;
TVirtualNode *node;
VirtualStringTree->NodeDataSize=sizeof(nodeInfo);
node=VirtualStringTree->AddChild(NULL,ni);
nodeInfo *ni1;
ni1= new nodeInfo();
ni1->name="two";
ni1->type=2;
VirtualStringTree->AddChild(node,ni1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::VTGetText(TBaseVirtualTree *Sender,
PVirtualNode Node, TColumnIndex Column, TVSTTextType TextType,
WideString &CellText)
{
nodeInfo *nodeInf;
nodeInf=new nodeInfo();
nodeInf=(nodeInfo *)VirtualStringTree->GetNodeData(Node);
CellText=nodeInf->name;
}
//---------------------------------------------------------------------------
|
|