VB-Homepage Tipp 190 |
"intelligente" Eingabeprüfung |
Klingt doch fast wie künstliche Intelligenz dieses
"intelligente Eingabeprüfung". Aber schrauben Sie Ihre Erwartungen etwas zurück, worum es hier geht, ist eine Funktionalität, die Sie vielleicht aus einigen Programmen kennen, in dem Sie in ein Eingabefeld etwas eintragen und in einer benachbarten Liste wird, der Ihrer Eintragung am nächsten liegende Begriff angezeigt. Und genau dies können sie nun ebenfalls in Ihr Projekt einbauen. Für einen Test benötigen Sie ein neues Projekt mit einer Form, einer Textbox und einer Listbox. Der Einfachheit halber bleibt alles beim Ursprungsnamen. Tragen Sie nun unter Allgemein/Deklarationen folgendes ein, ... Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal sParam$) As Long Const LB_FINDSTRING = &H18F ... zum Füllen der Listbox beim Programmstart unter Form_Load dies .... Dim i For i = 1 To 3678 List1.AddItem i Next ... und unter Text1_Change das. Dim Result&, wParam&, s$ wParam& = -1 s$ = Text1.Text Result& = SendMessageByString(List1.hwnd, LB_FINDSTRING, wParam&, s$) List1.ListIndex = Result& Wenn Sie nun Ihr Projekt mit F5 starten (es dauert etwas, da die Listbox gefüllt wird) und in die Textbox eine Zahl bis 3678 (Ist nur ein Beispiel) eingeben, werden Sie sehen, daß sich die Liste Ihrer Eingabe anpasst. |
Tipp-Download |
Quelle : Matt Hart - mhart@taascforce.com / http://.... |