Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi TreeView_Expand - komplett Tree expandieren ? (https://www.delphipraxis.net/141101-treeview_expand-komplett-tree-expandieren.html)

turboPASCAL 2. Okt 2009 14:37


TreeView_Expand - komplett Tree expandieren ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

wie kann man denn den TreeView komplett expandieren ?
So klappt es nicht:

Delphi-Quellcode:
rocedure TWndList.FillTreeView(hwnd: HWND);
var
  hTreeView: dword;
  hRoot: HTREEITEM;
  i: integer;
begin
  hTreeView := GetDlgItem(hwnd, IDC_TREE1);

  TreeView_DeleteAllItems(hTreeView);

  tvis.hParent := TVI_ROOT;
  tvis.hInsertAfter := TVI_LAST;
  tvis.item.mask := TVIF_TEXT {or TVIF_IMAGE};
  tvis.item.pszText := 'First';

  hRoot := TreeView_InsertItem(hTreeView, tvis);
  tvis.hParent := hRoot;

  for i := 0 to 4 do
  begin
    tvis.item.pszText := PCHAR(format('Item %d', [i + 1]));
    tvis.hParent := TreeView_InsertItem(hTreeView, tvis);
  end;

  TreeView_Expand(hTreeView, hRoot, TVE_EXPAND);
end;

mschaefer 2. Okt 2009 14:40

Re: TreeView_Expand - komplett Tree expandieren ?
 
Hat der TreeView nicht Properties CollapseAll/ExpandAll ? Da war doch was .. // Martin

turboPASCAL 2. Okt 2009 14:45

Re: TreeView_Expand - komplett Tree expandieren ?
 
Äh, nich bei der nonVCL - Version.

:duck:

mschaefer 2. Okt 2009 14:51

Re: TreeView_Expand - komplett Tree expandieren ?
 
Oh - Ok. Also dann für Kandidaten vor dem Sofa nochmal in kleiner Sofakissengröße:

Du willst alle Nodes durchiterieren und dabei öffnen? Ich frage deshalb, da auch
die Nodes / Items die Property 'Expand' haben. Funktioniert die bei NonVCL ?

Dann könnte ich nach iterationsroutinen in der Kiste unter dem Sofa suchen . . .

// Martin

Mithrandir 2. Okt 2009 14:56

Re: TreeView_Expand - komplett Tree expandieren ?
 
Eigentlich sollte es aber funktionieren. Hast du es mal direkt mit SendMessage probiert? Sind die Handle gültig?

mschaefer 2. Okt 2009 15:03

Re: TreeView_Expand - komplett Tree expandieren ?
 
Delphi-Quellcode:

procedure TreeviewFullyExpand(tv: TTreeview);
var
  Node : TTreeNode;
  IsExp : boolean;
begin
  Assert(Assigned(tv));
  if tv.Items.Count > 0 then
  begin
    Node  := tv.Items[0];
    while Assigned(Node) do
    begin
      IsExp := Node.Expanded or not Node.HasChildren;
      if IsExp = false then Node.Expanded = true;
      Node  := Node.GetNext;
    end; {While}
  end {If}
end;
Das ist jetzt natürlich mit der VCL-Version.
Vielleicht kann man dies Übertragen..

// Martin

turboPASCAL 2. Okt 2009 15:07

Re: TreeView_Expand - komplett Tree expandieren ?
 
Zitat:

Du willst alle Nodes durchiterieren und dabei öffnen?
Ich hoffte darauf das durchiterieren (schickes Wort) durch eine einzelne Message,
also TVE_EXPAND umgehen zu können.
Leider expandiert es nur den ersten Knoten.

Zitat:

Eigentlich sollte es aber funktionieren. Hast du es mal direkt mit SendMessage probiert? Sind die Handle gültig?
Jo.
Ja.
Ja.

@Martin,

Möglich, aber nicht für mich als Anfänger.

mschaefer 2. Okt 2009 15:14

Re: TreeView_Expand - komplett Tree expandieren ?
 
Um das Sofa schleich: Wenn Du mal ein Miniprojekt hast nur mit dem Treeview versuche ich es mal einzubauen ... // Martin

turboPASCAL 2. Okt 2009 15:33

Re: TreeView_Expand - komplett Tree expandieren ?
 
Damit du nicht einen Graben um das Sofa läufst, hab ich im ersten Post ein Miniproj. angehangen.

Aber es kann doch einfach nicht angehen das man alle Childs einzeln aufklappen muss. :gruebel:

Lannes 2. Okt 2009 16:35

Re: TreeView_Expand - komplett Tree expandieren ?
 
Hallo,

macht Delphi auch wenn FullExpand aufgerufen wird.

turboPASCAL 2. Okt 2009 16:56

Re: TreeView_Expand - komplett Tree expandieren ?
 
Wie meint er das ?

mschaefer 2. Okt 2009 17:05

Re: TreeView_Expand - komplett Tree expandieren ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin, moin,

Nach einem Tee und etwas Nachdenkem auf
dem Sofa und natürlich einigen Kreisen,
da NonVCL nicht wirklich mein Gebiet ist,
kommt jetzt meine Auflösung im Anhang.

// Martin

turboPASCAL 2. Okt 2009 17:39

Re: TreeView_Expand - komplett Tree expandieren ?
 
Vielen Dank. :thumb:


Falls es jmd interessiert, /me werkelt gerade (wieder mal) an Olli's (aka Assarbad) "EDA Preview"..

//Edit: Upps, kleines Fehler im Programm.
//Edit: Anhang gelösch, taucht sicher bals wo anders auf...

mschaefer 3. Okt 2009 11:54

Re: TreeView_Expand - komplett Tree expandieren ?
 
Ja bin mal gespannt was daraus wird! Irgendwie hast Du ja meist was interessantes auf Lager...

Schönes Wochenende // Martin

Lannes 3. Okt 2009 13:49

Re: TreeView_Expand - komplett Tree expandieren ?
 
Hallo,

Zitat:

Zitat von turboPASCAL
Wie meint er das ?

meinst Du mit "er" meine Wenigkeit, dann:


Zitat:

Zitat von turboPASCAL
... Aber es kann doch einfach nicht angehen das man alle Childs einzeln aufklappen muss. :gruebel:

Zitat:

Zitat von Lannes
... macht Delphi auch wenn FullExpand aufgerufen wird.

so meine ich das :stupid:

turboPASCAL 3. Okt 2009 14:06

Re: TreeView_Expand - komplett Tree expandieren ?
 
Hi Lannes,

nun hab ich es verstanden. Das war gestern etwas zu viel brainstorming
und meine Gedanken iterieren teilweise wahllos durchenander. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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