xsharp.eu • TreeView:ExpandAll()
Page 1 of 1

TreeView:ExpandAll()

Posted: Sun Aug 18, 2024 1:29 pm
by lagraf
Hallo,
gibt es in VO beim TreeView eine Methode zum Expandieren aller Nodes? In der Doku finde ich nichts und ExpandAll existiert nicht.
LG Franz

Re: TreeView:ExpandAll()

Posted: Mon Aug 19, 2024 5:31 am
by ecos
Hallo Franz,

das muss man selbst in die Hand nehmen:

Code: Select all

METHOD ExpandAll() CLASS MyTreeView
LOCAL oItem		AS TreeViewItem

oItem := SELF:getRootItem()
SELF:expand(oItem:NameSym)

WHILE(TRUE)
	oItem := SELF:GetNextItem(oItem)
	IF oItem = NULL_OBJECT
		EXIT
	ENDIF
	SELF:expand(oItem:NameSym)
ENDDO

RETURN SELF

METHOD GetNextItem(oStartItem) CLASS MyTreeView
LOCAL oItem		AS TreeViewItem

oItem := SELF:GetFirstChildItem(oStartItem)
IF oItem = NULL_OBJECT
	oItem := SELF:GetNextSiblingItem(oStartItem)
ENDIF
WHILE(oItem = NULL_OBJECT)
	oStartItem := SELF:GetParentItem(oStartItem)
	IF oStartItem = NULL_OBJECT
		EXIT
	ENDIF
	oItem := SELF:GetNextSiblingItem(oStartItem)
ENDDO
	
RETURN oItem


Karl

Re: TreeView:ExpandAll()

Posted: Mon Aug 19, 2024 9:06 am
by lagraf
Super, vielen Dank für den Code!
Hast du auch eine CollapseAll Methode?
LG

Re: TreeView:ExpandAll()

Posted: Mon Aug 19, 2024 9:18 am
by ecos
Logisch,

Code: Select all

METHOD CollapseAll(lRoot) CLASS MyTreeView
LOCAL oItem		AS TreeViewItem

Default(@lRoot,FALSE)

oItem := SELF:getRootItem()
IF lRoot
	SELF:Collapse(oItem:NameSym)
ENDIF
WHILE(TRUE)
	oItem := SELF:GetNextItem(oItem)
	IF oItem = NULL_OBJECT
		EXIT
	ENDIF
	SELF:Collapse(oItem:NameSym)
ENDDO

RETURN SELF

Re: TreeView:ExpandAll()

Posted: Mon Aug 19, 2024 11:17 am
by lagraf
Danke dir, ExpandAll funktioniert prima.
Bei CollapseAll bleibt mir vom obersten Node das erste Child offen.
Habe ich ev. den TreeView falsch aufgebaut?
--> Habe ich durch ein Anhängen von SELF:oDCTreeView:Collapse(SELF:oDCTreeView:GetFirstVisibleItem()) geschlossen

Re: TreeView:ExpandAll()

Posted: Mon Aug 19, 2024 11:28 am
by ecos
Franz,

Ich habe bei meinen Treeviews immer ein Root-Element, an dem alle hängen. Daher funktioniert das bei mir wie gewollt. Evtl. klappt es bei dir auch, wenn du Default(@lRoot,True) verwendest oder True als Parameter übergibst...

Karl

Re: TreeView:ExpandAll()

Posted: Mon Aug 19, 2024 2:10 pm
by lagraf
True funktioniert und schließt alle.
Danke dir!
LG Franz