TLink in Liste verschieben
Übersicht BlitzMax, BlitzMax NG Codearchiv & Module
DivineDominionBetreff: TLink in Liste verschieben |
Mi, Mai 18, 2005 16:43 Antworten mit Zitat |
|
---|---|---|
Könte wetten, es bereits ein mal gepostet zu haben vor alnger Zeit...
Verschiebt jedenfalls Einträge in der Liste hoch und runter. Am schnellsten geht sowas bei vielen Sachen in nem spiel wohl, wenn man von jedem Objekt den TLink, der bei TList.addLast() zurückgegeben wird, speichert. Sonst eben nach dem TLink suchen, indem man die Liste nach einem Objekt suchen lässt. Ist dann aber langsamer und so Code: [AUSKLAPPEN] Strict
Global liste:TList = New TList Global link:TLink = liste.AddLast("1") liste.AddLast("2") liste.AddLast("3") liste.AddLast("4") liste.AddLast("5") show( liste ) moveDown( link, liste ) show( liste ) moveUp( link, liste ) show( liste ) movetoEnd( link, liste ) show( liste ) movetoStart( link, liste ) show( liste ) movetoend( link, liste ) show( liste ) Function moveDown( hLink:TLink, hList:TList ) Local hPred:TLink = hLink._pred Local hSucc:TLink = hLink._succ hPred._succ = hSucc hSucc._pred = hPred hLink._succ = hSucc._succ hLink._pred = hSucc hSucc._succ._pred = hLink hSucc._succ = hLink EndFunction Function moveup( hLink:TLink, hList:TList ) Local hPred:TLink = hLink._pred Local hSucc:TLink = hLink._succ hPred._succ = hSucc hSucc._pred = hPred hLink._pred = hPred._pred hLink._succ = hPred hPred._pred._succ = hLink hPred._pred = hLink EndFunction Function moveToStart( hLink:TLink, hList:TList ) Local hFirst:TLink = hList.FirsTLink( ) hLink._succ._pred = hLink._pred hLink._pred._succ = hLink._succ hFirst._pred._succ = hLink hLink._pred = hFirst._pred hLink._succ = hFirst hFirst._pred = hLink EndFunction Function moveToEnd( hLink:TLink, hList:TList ) Local hLast:TLink = liste.LastLink() If hLink = hLast Then Return hLink._succ._pred = hLink._pred hLink._pred._succ = hLink._succ hLast._succ._pred = hLink hLink._succ = hLast._succ hLast._succ = hLink hLink._pred = hLast EndFunction Function show( hList:TList ) For Local t:String = EachIn hList Print t Next Print "-------------" EndFunction |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
Übersicht BlitzMax, BlitzMax NG Codearchiv & Module
Powered by phpBB © 2001 - 2006, phpBB Group