Poxa, alguém? Streams e records

14/02/2003

0

Pessoas, alguém saberia me ajudar? Estou tentando implementar funções no TTreeNode, só que para obter e colocar informações tem a seguinte classe declarada no padrão

PNodeInfo = ^TNodeInfo;
TNodeInfo = packed record
ImageIndex: Integer;
SelectedIndex: Integer;
StateIndex: Integer;
OverlayIndex: Integer;
Data: Pointer;
Count: Integer;
Text: string[255];
end;

eu acrescentei abaixo dos padrões os seguintes campos
Url: string[60];
SelectedIndexCollapsed: Integer;
SelectedIndexExpanded: Integer;

mas na hora de ler os meus campos ele lê errado! Sai vários símbolos estranhos, provavelmente lendo de memória errada! A função de leitura é

procedure TTreeNode.ReadData(Stream: TStream; Info: PNodeInfo);
var
I, Size, ItemCount: Integer;
LNode: TTreeNode;
begin
Owner.ClearCache;
Stream.ReadBuffer(Size, SizeOf(Size));
Stream.ReadBuffer(Info^, Size);
Text := Info^.Text;
Url := Info^.Url;
ImageIndex := Info^.ImageIndex;
SelectedIndex := Info^.SelectedIndex;
SelectedIndexCollapsed := Info^.SelectedIndexCollapsed;
SelectedIndexExpanded := Info^.SelectedIndexExpanded;
StateIndex := Info^.StateIndex;
OverlayIndex := Info^.OverlayIndex;
Data := Info^.Data;
ItemCount := Info^.Count;
for I := 0 to ItemCount - 1 do
begin
LNode := Owner.AddChild(Self, ´´);
LNode.ReadData(Stream, Info);
Owner.Owner.Added(LNode);
end;
end;

Mas seguindo todas as funções os valores estão certos, somente qdo ele obtêm de Info^ é que sai errado as propriedades que eu acrescentei! Alguém tem alguma pista???

grato

Anderson


Anonymous

Anonymous

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar