Code archives/BlitzPlus Gui/ListBoxSorter

This code has been declared by its author to be Public Domain code.

Download source code

ListBoxSorter by Wings2005
This is an example how to sort Gadgetitems in a listbox.

I find it usefull :)
;Gadget sorting rutine.
window=CreateWindow("Sorte List example",100,100,800,600,0,3)
list=CreateListBox(10,10,300,500,window)
button=CreateButton("Sort",400,300,50,30,window)


AddGadgetItem list,"Hey u fools"
AddGadgetItem list,"Nobody listens"
AddGadgetItem list,"Everybody cant do nothing"
AddGadgetItem list,"U never make it"
AddGadgetItem list,"Try sort this out"
AddGadgetItem list,"Hahaha fools"
AddGadgetItem list,"do u think u can sort me ?"
AddGadgetItem list,"Ohh nooo u never gona make it"
AddGadgetItem list,"A"
AddGadgetItem list,"ZZza"
AddGadgetItem list,"aavvV"



While Not quit=1
	e=WaitEvent()
	s=EventSource()
	d=EventData()

	If e=$803 And s=window Then quit=1

	If e=1025 And s=button
		sort=True
		
		While sort=True
			stall=stall+1
			If stall>9999 Then abort=Confirm("Vill du avbruta sorteringen ?")
			If abort Then Exit
			sort=False
		
			For g=0 To (CountGadgetItems( list )-2)

				a$=GadgetItemText(list,g)
				b$=GadgetItemText(list,g+1)
		
				l1=Len(a$)
				l2=Len(b$)
				lx=l1
		
				If l2<l1 Then lx=l2 

				win=0
				For i=1 To lx
					a1=Asc(Upper$(Mid$(a$,i,1)))
					b1=Asc(Upper$(Mid$(b$,i,1)))
	
					If a1=b1
						;Ah fortsätt. ingen träff.
					Else If a1>b1
						win=1
						
						Exit
					Else If a1<b1
						win=2
						Exit
					End If
				Next 

				If win=1
	
					ModifyGadgetItem list,g,b$
					ModifyGadgetItem list,g+1,a$
					sort=True
					
				End If

			Next		
		Wend
		
	End If


Wend

Comments

octothorpe2005
bubblesort!


Code Archives Forum