Filling more than 10000 items in a combobox take too much time for you ?
On my computer it take 3645ms to fill 50000 items and with this API function it take only 310ms.

Source code [PB4.0]
Code: Select all
#nItem = 50000
Enumeration
#gCombo
#gText1
#gText2
#gDo1
#gDo2
EndEnumeration
Procedure Do1()
SetGadgetText(#gText1,"Processing...")
ClearGadgetItems(#gCombo)
time = ElapsedMilliseconds()
For i=0 To #nItem
AddGadgetItem(#gCombo,i,RSet(Str(i),8,"0")+":$"+RSet(Hex(i),8,"0"))
Next
SetGadgetText(#gText1,Str(ElapsedMilliseconds()-time)+" ms")
SetGadgetState(#gCombo,0)
EndProcedure
Procedure Do2()
SetGadgetText(#gText2,"Processing...")
ClearGadgetItems(#gCombo)
time = ElapsedMilliseconds()
;############################################################
BufferSize = #nItem * 20
SendMessage_(GadgetID(#gCombo),#CB_INITSTORAGE,0,BufferSize)
;############################################################
For i=0 To #nItem
AddGadgetItem(#gCombo,i,RSet(Str(i),8,"0")+":$"+RSet(Hex(i),8,"0"))
Next
SetGadgetText(#gText2,Str(ElapsedMilliseconds()-time)+" ms")
SetGadgetState(#gCombo,0)
EndProcedure
If OpenWindow(0,150,150,200,85,"Number of items : "+Str(#nitem),#PB_Window_SystemMenu)
; If CreateGadgetList(WindowID(0))
ComboBoxGadget(#gCombo,5,5,190,300)
TextGadget(#gText1,5,30,90,22,"",#PB_Text_Border)
TextGadget(#gText2,105,30,90,22,"",#PB_Text_Border)
ButtonGadget(#gDo1,5,58,90,22,"Test 1")
ButtonGadget(#gDo2,105,58,90,22,"Test 2")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow: Break
Case #PB_Event_Gadget
Select EventGadget()
Case #gDo1: Do1()
Case #gDo2: Do2()
EndSelect
EndSelect
ForEver
; EndIf
EndIf