I have a listbox filled with items(names of plants, shrubs, etc.). When I type in letters in the textbox, and press the button, it works like I want. The matching letters (with names) are selected in the listbox.
The same code used in case %IDC_LETTERS (the textbox) does not work. the Do-loop operates only once per letter entry.
I would like to have it work when entering the letters in the text box.
Any ideas?

NEVER MIND. I FOUND MY ERROR. I HAD LEFT OUT MY LINE THAT RETREIVED THE LETTERS BEING TYPED IN.
My mind is going, I'm afraid!!

Here is the code I am using with the dialog and callback procedure.

John Tate
Code:
CALLBACK FUNCTION ShowSelVnameProc()
LOCAL TBS(),varNum AS LONG
LOCAL VarietyName,letters AS STRING
STATIC DiggerRecNum AS LONG
LOCAL dtemp AS digger
STATIC R3,numofnames AS LONG
REDIM tbs(1 TO 10)
TBS(1) = 250
    SELECT CASE AS LONG CBMSG
        CASE %WM_INITDIALOG
            ' Initialization handler
            DIALOG GET USER CBHNDL,1 TO DiggerRecNum
            GET #2,DiggerRecNum,dtemp
            DIALOG SET TEXT CBHNDL, "SELECTING VARIETIES FOR " + dtemp.diggername
            CONTROL SEND CBHNDL,%IDC_LISTBOX3,%LB_SETTABSTOPS,1,VARPTR(tbs(1))
            FillVarietyLB(CBHNDL,numofnames)
            CONTROL SET FOCUS CBHNDL, %idc_letters
            R3 = 0
        CASE %WM_NCACTIVATE
            STATIC hWndSaveFocus AS DWORD
            IF ISFALSE CBWPARAM THEN
                ' Save control focus
                hWndSaveFocus = GetFocus()
            ELSEIF hWndSaveFocus THEN
                ' Restore control focus
                SetFocus(hWndSaveFocus)
                hWndSaveFocus = 0
            END IF

        CASE %WM_COMMAND
            ' Process control notifications
            SELECT CASE AS LONG CBCTL
                ' /* Inserted by PB/Forms 02-06-2008 14:50:04
                CASE %IDC_SELLETTERS  'button when pushed accepts letters typed by user
                    IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                         CONTROL GET TEXT CBHNDL,%IDC_LETTERS TO letters

                  INCR r3
                 DO
                     LISTBOX SELECT CBHNDL,%IDC_LISTBOX3,R3
                     LISTBOX GET TEXT CBHNDL,%IDC_LISTBOX3 TO VarietyName
                      IF LEFT$(UCASE$(varietyname),LEN(letters))= UCASE$(letters) THEN EXIT LOOP
                     IF r3 > numofnames THEN r3 = 0: EXIT LOOP
                     INCR r3
                     LOOP

                END IF
                ' */

                ' /* Inserted by PB/Forms 02-06-2008 13:53:26
                CASE %IDC_LETTERS  'textbox that accepts letter typed in by user
                        IF CBCTL = %IDC_LETTERS AND CBCTLMSG = %EN_CHANGE THEN
                        INCR R3
                 DO
                     LISTBOX SELECT CBHNDL,%IDC_LISTBOX3,R3  'r3 is list position in LB3
                     LISTBOX GET TEXT CBHNDL,%IDC_LISTBOX3 TO VarietyName
                      IF LEFT$(UCASE$(varietyname),LEN(letters))= UCASE$(letters) THEN EXIT LOOP 'if match found, exit loop
                     IF r3 > numofnames THEN:r3= 0: EXIT LOOP  'if r3 > total number of item in LB, then no match was found.
                     INCR r3
                     LOOP
                    END IF
                    
                CASE %IDC_LABEL57
                ' */

                CASE %IDC_LISTBOX3
                     IF CBCTL = %IDC_LISTBOX3 AND CBCTLMSG = %LBN_DBLCLK THEN
                        CONTROL POST CBHNDL,%IDC_SELVariety, %BM_CLICK,0,0
                        END IF
                CASE %IDC_SELVARIETY
                    IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                        LISTBOX GET TEXT CBHNDL ,%idc_listbox3 TO VarietyName
                        Varnum = VAL(PARSE$(VarietyName,$TAB,2))
                        ShowEnterPay(CBHNDL,DiggerRecNum,Varnum,0,0,0)
                    END IF

                CASE %IDCANCEL
                    IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                        DIALOG END CBHNDL, 0
                    END IF

            END SELECT
    END SELECT
END FUNCTION
'--------------------------------------------------------------------------


'------------------------------------------------------------------------------
FUNCTION ShowSelVname(BYVAL hParent AS DWORD,Digrecnum AS LONG)AS LONG
    LOCAL lRslt AS LONG

#PBFORMS BEGIN DIALOG %IDD_SelVname->->
    LOCAL hDlg  AS DWORD

    DIALOG NEW  hParent, "", 70, 70, 375, 257, %WS_POPUP OR %WS_BORDER OR _
        %WS_DLGFRAME OR %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME OR _
        %DS_CENTER OR %DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT, _
        %WS_EX_WINDOWEDGE OR %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR _
        %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg
    CONTROL ADD LISTBOX, hDlg, %IDC_LISTBOX3, , 60, 10, 200, 190, %WS_CHILD _
        OR %WS_VISIBLE OR %WS_TABSTOP OR %WS_VSCROLL OR %LBS_NOTIFY OR _
        %LBS_USETABSTOPS, %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR _
        %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR
    CONTROL ADD BUTTON,  hDlg, %IDC_SELVARIETY, "SELECT VARIETY", 50, 220, _
        65, 15
    CONTROL ADD BUTTON,  hDlg, %IDCANCEL, "EXIT", 140, 220, 50, 15
    CONTROL ADD TEXTBOX, hDlg, %IDC_LETTERS, "", 265, 20, 100, 13
    CONTROL ADD LABEL,   hDlg, %IDC_LABEL57, "ENTER LETTERS OF NAME", 265, _
        10, 100, 10
    CONTROL ADD BUTTON,  hDlg, %IDC_SELLETTERS, "SELECT LETTERS", 275, 35, _
        75, 15
#PBFORMS END DIALOG
    DIALOG SET USER hdlg,1,DigRecnum
    DIALOG SHOW MODAL hDlg, CALL ShowSelVnameProc TO lRslt

#PBFORMS BEGIN CLEANUP %IDD_SelVname
#PBFORMS END CLEANUP

    FUNCTION = lRslt
END FUNCTION