AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Virtual Treeview, rootnodecount setzen in Designtime
Thema durchsuchen
Ansicht
Themen-Optionen

Virtual Treeview, rootnodecount setzen in Designtime

Ein Thema von hermannhass · begonnen am 17. Mär 2008 · letzter Beitrag vom 19. Mär 2008
 
hermannhass

Registriert seit: 23. Dez 2006
Ort: Nähe Las Palmas
69 Beiträge
 
#1

Virtual Treeview, rootnodecount setzen in Designtime

  Alt 17. Mär 2008, 02:27
Hallo
Ich benutze den Virtual Treeview(TVirtualStringTree) und habe folgendes Problem
Ich habe eine Ableitung des TVirtualStringTree mit onInit und onfree routine.
Wenn ich Rootnodecount in Designtimer mit dem Objectinspectore verändere,
bekomme ich eine Exception.
"Zugriffverletzung ... in Modul rtl100.bpl"
Das tritt nur auf, wenn ich ich doinitnode benutze und auf den User-Speicher zugreife.
Läuft das Speichermanagement nicht zur Designtime?
Vielen Dank für eine Antwort
Hermann

Delphi-Quellcode:
uses
 Classes,VirtualTrees,sysutils;
type
 Pmydata = ^tmydata;
 tmydata = record
  caption : string;
 end;
 tmytree = class(TVirtualStringTree)
  private
    { Private-Deklarationen }
 protected
    { Protected-Deklarationen }
   procedure DoGetText(Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var Text: WideString); override;
   procedure DoFreeNode(Node: PVirtualNode); override;
   procedure DoInitNode(Parent, Node: PVirtualNode; var InitStates: TVirtualNodeInitStates); override;
  public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
    { Public-Deklarationen }
  published
   { Published-Deklarationen }
 end;

procedure Register;
implementation

procedure Register;
begin
  RegisterComponents('Neu', [tmytree]);
end;
constructor tmytree.create(aowner:tcomponent);
begin
 inherited create(aowner);
 NodeDataSize :=sizeof(tmydata);
end;
destructor tmytree.destroy;
begin
 inherited destroy;
end;

procedure tmytree.DoGetText(Node:PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var Text: WideString);
var
 ptd : Pmydata;
begin
 ptd:=getNodeData(Node);
 Text:=ptd.caption;
end;

procedure tmytree.doFreenode(Node: PVirtualNode);
var
 ptd : Pmydata;
begin
 ptd:=GetNodeData(Node);
 Finalize(ptd^);
end;

procedure tmytree.DoInitNode(Parent, Node: PVirtualNode; var InitStates: TVirtualNodeInitStates);
var
 ptd : Pmydata;
begin
 ptd:=GetNodeData(Node);
 ptd.caption:='No:'+inttostr(node.Index); /// Hier knallt es !!!!!!!!!!
end;
Entwickle SW mit Delphi 2006 und sql.
Lebe auf Gran Canaria.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz