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.comhttp://....

Zurück zur Übersichtsseite