AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Virtualstringtree Exception beim aufklappen

Ein Thema von WS1976 · begonnen am 20. Jan 2009 · letzter Beitrag vom 20. Jan 2009
 
WS1976
(Gast)

n/a Beiträge
 
#1

Virtualstringtree Exception beim aufklappen

  Alt 20. Jan 2009, 06:31
Hallo,
ich habe, mit virtualstringtree, eine Tabelle mit Subnodes erzeugt.
Beim Aufklappen des Subnodes bekomme ich eine in der VSTGetText Methode eine Zugriffsverletzung. Weiss nicht warum.
Kann mir jemand helfen?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, VirtualTrees, StdCtrls, ImgList;

type
  POmeinedaten=^TOmeinedaten;
  TOmeinedaten=class
  private
  published
  public
    Bezeichnung:string;
    Feld:array[1..6] of string;
    Fobject:tobject;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    VST: TVirtualStringTree;
    ImageList1: TImageList;
    procedure Button1Click(Sender: TObject);
    procedure VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
      Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
    procedure FormCreate(Sender: TObject);
  private
    function add_entry(node:PVirtualNode;bez,f1,f2,f3,f4,f5,f6:string):PVirtualNode;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.add_entry(node:PVirtualNode;bez,f1,f2,f3,f4,f5,f6:string):PVirtualNode;
var daten:TOmeinedaten;
begin
  daten:=TOmeinedaten.Create;
  If node<>nil then
     Begin
       daten:=vst.GetNodeData(node);
     End;
        daten.Bezeichnung:=bez;
        daten.Feld[1]:=f1;
        daten.Feld[2]:=f2;
        daten.Feld[3]:=f3;
        daten.Feld[4]:=f4;
        daten.Feld[5]:=f5;
        daten.Feld[6]:=f6;
  result:=vst.addchild(node,daten);
end;

procedure TForm1.Button1Click(Sender: TObject);
var I:Integer;
aNode:PVirtualNode;
begin
  anode:=add_entry(nil,'Telegramm aktiv Ein','s','s','s','s','s','s');
  add_entry(anode,'Telegramm aktiv Ein passiv','a','a','a','a','a','a');
// node:=add_entry(nil,'Telegramm aktiv Aus','','','','','','');
// node:=add_entry(nil,'Telegramm aktiv Aus passiv','','','','','','');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  vst.nodedatasize:=sizeof(TOmeinedaten);
end;

procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
var
  data : TOmeinedaten;t0:integer;
begin
  data:=TOmeinedaten(VST.getnodedata(node)^);
        case Column of
        0: celltext:=Data.Bezeichnung;
        1: celltext:=Data.Feld[1];
        2: celltext:=Data.Feld[2];
        3: celltext:=Data.Feld[3];
        4: celltext:=Data.Feld[4];
        5: celltext:=Data.Feld[5];
        6: celltext:=Data.Feld[6];
        end;
end;

end.
Grüsse
Rainer
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz