AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Beispiel für DSharp TreeViewPresenter mit mehreren Node Ebenen?
Thema durchsuchen
Ansicht
Themen-Optionen

Beispiel für DSharp TreeViewPresenter mit mehreren Node Ebenen?

Ein Thema von jus · begonnen am 8. Mai 2019 · letzter Beitrag vom 22. Jun 2020
Antwort Antwort
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#1

Beispiel für DSharp TreeViewPresenter mit mehreren Node Ebenen?

  Alt 8. Mai 2019, 00:26
Hallo,

ich möchte den TreeViewPresenter von DSharp in Verbindung mit VirtualStringTree nutzen, doch mit meinen bescheidenen Kenntnissen komme ich irgendwie nicht vom Fleck. Wie muß man die Daten erzeugen, damit man diese an den TreeViewPresenter übergeben kann, damit der VirtualStringTree Nodes mit mehreren Ebenen anzeigt? Daran scheitere ich schon, da ich bisher kein einziges Beipsiel dazu gefunden habe.
Hätte wer dazu ein Beispiel?

lg,
jus

Geändert von jus ( 8. Mai 2019 um 01:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Beispiel für DSharp TreeViewPresenter mit mehreren Node Ebenen?

  Alt 8. Mai 2019, 10:48
Simple hierarchische Datenstruktur - z.B. Ordner und Items. 2 Datatemplates für Ordner und Items, beide an den TVP hängen, ColumnDefinitions erstellen, Liste der Objekte auf der Rootebene an den TVP hängen - fertig.

Minimalcode (vorher VST und TVP auf die Form und dem TVP den VST an seiner TreeView Eigenschaft zuweisen, außerdem eine Column auf dem TVP anlegen)

Delphi-Quellcode:
uses
  Spring,
  Spring.Collections,
  DSharp.Core.DataTemplates;

type
  TNamedItem = class
  private
    fName: string;
  public
    constructor Create(const name: string);
    property Name: string read fName write fName;
  end;

  TFolder = class(TNamedItem)
  private
    fItems: IList<TObject>;
  public
    constructor Create(const name: string);
    property Items: IList<TObject> read fItems;
  end;

  TItemTemplate = class(TDataTemplate<TNamedItem>)
    function GetItems(const Item: TNamedItem): IObjectList; override;
    function GetValue(const Item: TNamedItem;
      const ColumnIndex: Integer): TValue; override;
  end;

procedure TTVPDemoForm.FormCreate(Sender: TObject);
var
  items: IObjectList;
  folder1, folder2: TFolder;
begin
  items := TCollections.CreateObjectList<TObject> as IObjectList;
  folder1 := TFolder.Create('Folder 1');
  folder2 := TFolder.Create('Folder 1.1');
  folder2.Items.AddRange([TNamedItem.Create('File 1'), TNamedItem.Create('File 2')]);
  folder1.Items.Add(folder2);
  items.Add(folder1);

  TreeViewPresenter1.View.ItemTemplate := TItemTemplate.Create;
  TreeViewPresenter1.View.ItemsSource := items;
end;

{ TNamedItem }

constructor TNamedItem.Create(const name: string);
begin
  inherited Create;
  fName := name;
end;

{ TFolder }

constructor TFolder.Create(const name: string);
begin
  inherited Create(name);
  fItems := TCollections.CreateObjectList<TObject>;
end;

{ TItemTemplate }

function TItemTemplate.GetItems(const Item: TNamedItem): IObjectList;
begin
  if Item is TFolder then
    Result := TFolder(Item).Items as IObjectList
  else
    Result := nil;
end;

function TItemTemplate.GetValue(const Item: TNamedItem;
  const ColumnIndex: Integer): TValue;
begin
  Result := Item.Name;
end;

end.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 8. Mai 2019 um 11:10 Uhr)
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Beispiel für DSharp TreeViewPresenter mit mehreren Node Ebenen?

  Alt 8. Mai 2019, 20:31
Hallo Stefan,

das Beispiel hilft mir schon extrem weiter. Vielen Dank!

lg,
jus
  Mit Zitat antworten Zitat
Wishmaster

Registriert seit: 14. Sep 2002
Ort: Steinbach, MB, Canada
301 Beiträge
 
Delphi XE2 Architect
 
#4

AW: Beispiel für DSharp TreeViewPresenter mit mehreren Node Ebenen?

  Alt 22. Jun 2020, 07:34
aus der demo, ist da ein weg 'File 1' in kolumne 1 und 'File 2' in kolumne 2 anzeigen zu lassen?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Beispiel für DSharp TreeViewPresenter mit mehreren Node Ebenen?

  Alt 22. Jun 2020, 11:46
aus der demo, ist da ein weg 'File 1' in kolumne 1 und 'File 2' in kolumne 2 anzeigen zu lassen?
Nein, der TVP verbindet rows mit den Items, nicht Columns - wie viele Columns sollte es denn geben, wenn ich nicht 2 sondern 50 Items anhänge?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 02:50 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