AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

cxVirtualTreeList -> cxMemo

Ein Thema von Gyrospeter · begonnen am 18. Jun 2020
Antwort Antwort
Gyrospeter

Registriert seit: 11. Apr 2019
49 Beiträge
 
Delphi 10.4 Sydney
 
#1

cxVirtualTreeList -> cxMemo

  Alt 18. Jun 2020, 09:14
Guten Morgen werte Delphianer,

ich stehe mal wieder auf dem Schlauch und vor einem Problem. Vielleicht kennen ja einige von euch das XML Notepad von Microsoft, dort ist es so, dass wenn ich auf einen Node klicke, dann wird er mir rechts auf das Memofeld in DERSELBEN Zeile übertragen. Bei mir ist es momentan eher Wirrwar und erscheint oben im Memofeld. Wie gesagt möchte ich es derselben Zeile. Vielleicht soll er dann rechts auch automatisch mitscrollen, wenn ich links viel weiter unten ein Node angeklickt habe und drüber eine Menge Nodes sind.
Gibt's eventuell eine eleganter Lösung, als die das im Notepad gemacht haben? Dort wird Links jeder Node inkl. Attributen einzeln aufgedröselt?!

Vielen Dank schon mal vorab

Code:
procedure TXMLToMemo.SetTransferSelectedNodes(AVT: TcxVirtualTreeList;
  AMemo: TcxMemo);
var
  ParentNode,ChildNode: TcxTreeListNode;
  i: Integer;
begin
  AMemo.Clear;
  ParentNode := AVT.Selections[0];
  //AVT.CopySelectedToClipboard(True);

  while ParentNode <> nil do
  begin
    if ParentNode <> nil then
    begin

      AMemo.Lines.Add(ParentNode.Texts[0]);
      ChildNode := ParentNode.GetFirstChild;

      {for i := 0 to AVT.SelectionCount - 1 do
        begin
          if not ParentNode.Expanded or ParentNode.Selected then
            AMemo.Lines.Add('');
        end;} // Funktioniert nicht so

      while ChildNode <> nil do
      begin
        AMemo.Lines.Add(ChildNode.Texts[0]);

        {for i := 0 to AVT.SelectionCount - 1 do
        begin
          if not ChildNode.Expanded or ChildNode.Selected then
            AMemo.Lines.Add('');
        end;} // Funktioniert nicht so

        if ChildNode.HasChildren then
        begin
          ParentNode := ChildNode.GetFirstChild;
          break;
        end;
        ChildNode := ChildNode.GetNextSibling;
      end;
    end;

    if ChildNode = nil then
    begin
      if ParentNode.GetNextSibling <> nil then
        ParentNode := ParentNode.GetNextSibling
      else
      begin
        while ParentNode.GetNextSibling = nil do
        begin
          if ParentNode.Parent <> nil then
            ParentNode := ParentNode.Parent
          else
            break;
        end;
        if ParentNode <> nil then
          ParentNode := ParentNode.GetNextSibling;
      end;
    end;
  end;
end;
  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:49 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