AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi VirtualStringTree (einen Knoten Name vergeben)
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree (einen Knoten Name vergeben)

Ein Thema von Karstadt · begonnen am 13. Feb 2006 · letzter Beitrag vom 13. Feb 2006
Antwort Antwort
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#1

VirtualStringTree (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 17:50
Hallo. Ich wollte diesen Beispiel Folgen und Knoten mit Caption anlegen, leider sehe ich nur "NODE" und keine Caption.
Warum?

http://www.dsdt.info/tutorials/virtualtreeview/?page=3

Delphi-Quellcode:

unit Unit1;

interface

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

type

  PTreeData = ^TTreeData;
  TTreeData = record
    FCaption: String;
    FColumn1: String;
end;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Vst: TVirtualStringTree;
    SpeedButton1: TSpeedButton;

    procedure Button1Click(Sender: TObject);
  private
    function AddVSTStructure(AVST: TCustomVirtualStringTree;
      ANode: PVirtualNode; ARecord: TTreeData): PVirtualNode;
    procedure Button3Click(Sender: TObject);
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
  TreeData: TTreeData;
begin
  VST.NodeDataSize:=SizeOf(TTreeData);
  VST.BeginUpdate;
  for I:=0 to 100 do
  begin
    TreeData.FCaption:='Node-Nummer: '+IntToStr(I);
    AddVSTStructure(VST,nil,TreeData);
  end;
  VST.EndUpdate;
end;

function TForm1.AddVSTStructure(AVST: TCustomVirtualStringTree; ANode: PVirtualNode;
  ARecord: TTreeData): PVirtualNode;
var
  Data: PTreeData;
begin
  Result:=AVST.AddChild(ANode);
  Data:=AVST.GetNodeData(Result);
  Avst.ValidateNode(Result, False);
  Data^.FCaption:=ARecord.FCaption;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#2

Re: VirtualPreeView (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 17:53
In deinem Titel ist ein P zuviel, und ein T zu wenig.

Zum Thema: NODE ist der Standardtext. Du musst das Ereignis OnGetText verwenden und dort je nach Spalte den Text setzen.

Delphi-Quellcode:

type
  PNodeID = ^TNodeID;
  TNodeID = record
   fObject: TObject;
  end;

procedure TMainForm.VSTObjectsGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: WideString);
var
  p: PNodeID;
begin
  p := Sender.GetNodeData(Node);
  if p <> nil then
    begin
      case Column of
        0: CellText := TScanObjectList(p.fObject).Caption;
        1: CellText := TScanObjectList(p.fObject).ItemCountStr;
      end;
    end;
end;
Edit: kleines Beispiel angehängt.
Edit2: end; vergessen.
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#3

Re: VirtualPreeView (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 18:43
In deinem Titel ist ein P zuviel, und ein T zu wenig.

Wie meinst du das?
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#4

Re: VirtualPreeView (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 18:49
Zitat:
0: CellText := TScanObjectList(p.fObject).Caption;
Undefinierter Bezeichner: 'TScanObjectList'

  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#5

Re: VirtualPreeView (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 18:51
Zitat von Karstadt:
In deinem Titel ist ein P zuviel, und ein T zu wenig.

Wie meinst du das? :(
dass die komponente mike lischke VirtualTreeView (bzw. VirtualStringTree) heisst, nicht VirtualPreeView. das war ja nur eine anmerkung (falls in zukunft jmd. das selbe problem haben sollte, wird er mit solch einem titel nicht fündig, daher halte ich die korrektur für sinnvoll).

hast du dein problem gelöst?
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#6

Re: VirtualPreeView (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 18:53
Zitat von Karstadt:
Zitat:
0: CellText := TScanObjectList(p.fObject).Caption;
Undefinierter Bezeichner: 'TScanObjectList'

:(
das ist klar, das ist ein objekt von mir, der code oben soll dir ja nur zeigen, wie man den Zellen-Text (CellText) zuweist. Ich verwende wie gesagt u. a. ein Objekt namens TScanObjectList dazu, für dich ist das irrelevant.

edit: kuck dir doch mal die demos im ordner advanced an, die sind sehr hilfreich für den einstieg, bzw. das hier.
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#7

Re: VirtualStringTree (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 19:11
Das habe ich auch gemacht. Das CODE aus dem ersten Postig wurde da raus kopiert. Funktioniert bei mir nicht. ich weis aber nicht warum
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#8

Re: VirtualStringTree (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 19:29
Alles klar. Nun habe ich das. Ist enwas ungewöhnlich zu bedienen. Sonst gut.
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#9

Re: VirtualStringTree (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 20:35
Delphi-Quellcode:

procedure TForm1.VstGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: WideString);
var
  Data: PTreeData;
begin
  Data:=VST.GetNodeData(Node);
  CellText := Data^.FCaption;
end;


procedure TForm1.VstFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
var
  Data: PTreeData;
begin
  Data:=VST.GetNodeData(Node);
  if Assigned(Data) then
    Data.FCaption:='';
end;
Hallo. Ich bin nun soweit, das ich ein Hauptknoten anlegen kann. Jetzt will ich einen Unterknoten enlegen. Ich habe mir zwar den Tutorial angeschaut, leider bin ich nicht viel schlauer geworden.


Mein stand:
Hardware
Software
Autos

Ziel

Hardware->Monitor
Software
Autos->Porsche

Wie kann ich eine unterkategorier ertellen ?
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#10

Re: VirtualStringTree (einen Knoten Name vergeben)

  Alt 13. Feb 2006, 21:31
ich habe es geschaft.
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:28 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