Restored from previous forum. Originally posted by Danilo.
 Fangbeast: maybe this is a start for you...
Code: Select all
Global hCombo, hComboEdit, hList
Global oldComboEditProc, ListHidden
;
OpenWindow(1,200,200,400,200,#PB_WINDOW_SystemMenu,"")
   CreateGadgetList(WindowID())
   hCombo = ComboBoxGadget(1,10,10,300,100,#PB_ComboBox_Editable)
   hList  = ListViewGadget(2,20,31,280,100)
            HideGadget(2,1): ListHidden = 1
            For a = 1 To 9: AddGadgetItem(2,-1,"FangBeast "+Str(a)): Next a
AddKeyboardShortcut(1,#PB_Shortcut_Return,100)
AddKeyboardShortcut(1,#PB_Shortcut_Up    ,101)
;
Procedure CheckContents(A$)
   If UCase(Left(A$,4)) = "FANG" ;And Len(A$) = 4
      HideGadget(2,0): ListHidden = 0
   Else
      HideGadget(2,1): ListHidden = 1
   EndIf
EndProcedure
;
Procedure ComboKey(Window,Message,wParam,lParam)
  If Message = #WM_KEYDOWN And wParam = #VK_DOWN And ListHidden = 0
     SetFocus_(hList): SetGadgetstate(2,0)
  EndIf
  Result = CallWindowProc_(oldComboEditProc,Window,Message,wParam,lParam)
ProcedureReturn Result
EndProcedure
;
Procedure WindowCallback(Window,Message,wParam,lParam)
 Result = #PB_ProcessPureBasicEvents 
 Select Window
    Case WindowID()
         Select Message
           Case #WM_COMMAND
             If lParam = hCombo And (wParam >> 16) = #CBN_EDITCHANGE
                A$=Space(1000) : GetWindowText_(hCombo,A$,1000)
                CheckContents(A$)
             EndIf
         EndSelect
 EndSelect
 ProcedureReturn Result 
EndProcedure 
;
SetWindowCallback(@WindowCallback())
hComboEdit = ChildWindowFromPoint_(hCombo,5,5)
oldComboEditProc = SetWindowLong_(hComboEdit,#GWL_WNDPROC,@ComboKey())
;
Repeat
   Select WaitWindowEvent()
      Case #PB_EventCloseWindow: End
      Case #PB_EventMenu
        If EventMenuID() = 100 And GetFocus_() = hList
           SetWindowText_(hCombo,GetGadgetItemText(2,GetGadgetState(2),0))
           HideGadget(2,1): ListHidden = 1
           SetFocus_(hComboEdit): SendMessage_(hComboEdit,#EM_SETSEL,$FFFFFFFF,$FFFFFFFF)
           SetGadgetState(2,0)
        ElseIf EventMenuID() = 101 And GetFocus_() = hList 
          If GetGadgetState(2) = 0
           SetGadgetState(2,-1)
           SetFocus_(hComboEdit): SendMessage_(hComboEdit,#EM_SETSEL,$FFFFFFFF,$FFFFFFFF)
          Else
           SetGadgetState(2,GetGadgetState(2)-1)
          EndIf
        EndIf
      Case #PB_EventGadget
   EndSelect
ForEver
Just Type "Fang" in the ComboBox to see whats happening... 
But hey, its only small to get you started...
cya,
...Danilo
(registered PureBasic user)