Code: Alles auswählen
::dirTree:itemMarked := {| oItem, aRect, oSelf | ;
PostAppEvent( xbeDS_DirChanged, oItem:getData() ) }
...
CASE nEvent == xbeDS_DirChanged
IF NIL = mp1
LViewClear(oApp)
* ELSEIF ASCAN( oApp:aNodes, {|x| x[1] == mp1} ) > 0
* ELSEIF ASCAN( oApp:aNodes, {|x| x[1] $ mp1} ) > 0
ELSEIF ASCAN( oApp:aNodes, {|x| x[1] = mp1} ) > 0
oApp:oFiles:setFilesTo( mp1 )
ELSE
LViewClear(oApp)
ENDIF
Nun habe ich ein "tief" geschachteltes Directory, er baut alles auf und zeigt mit dann in der "tiefsten" Vierschachtlung auch das ListView.
bei einem "leeren" TreeView muss ich ja, angefangen beim RootItem auch die Node und Sub-Node anlegen bis zur gewünschten "Tiefe"
Jeden Node nehme ich in ein Array oApp:aNodes auf. Problem : wenn ich nur ein Directory "hoch gehe" dann zeigt er mir auch "dort" den "Inhalt" als ListView an ...
Dieser "Effekt" ist wäre zum Navigieren gut, aber ich möchte ja nur den "markierten" Ordner als Auswahl zum "brennen"
Ich habe ja alle Node(s) im Array aufgenommen {PathFile,oItem} damit ich die "verwenden" kann wenn ich in einen vorhandenen Node noch was "anhängen" will ...
Problem : "kurzer" Path in "langem" Path
"d:\ALASKA\XPPYIU\DATEN\0\" ist vorhanden und ich komme mit neuen Daten aus "d:\ALASKA\XPPYIU\OLD\" an ...
wie "unterscheide" ( ELSEIF ) ich nun wann er was anzeigen soll und wann nicht ...