Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   IntraWeb Suche (https://www.delphipraxis.net/179279-intraweb-suche.html)

egentur 24. Feb 2014 15:34

IntraWeb Suche
 
Hallo
Frage an die Profis

Ich hab ne Intraweb Anwendung und muss ne Suche implementieren
Ein Eingabefeld IWEdit, darunter ne IWListbox.
Wenn ich im Editfeld nen Suchbegriff eingebe, wird anhand dessen ein Sql abgesetzt und das Ergebnis in die Listbox geschrieben und
diese angezeigt. so weit so gut, dsa funktioniert auch alles.

Ich wollte nun die Suche auf OnAsyncKeyDown starten. Geht auch, aber ich möchte aber verhindern, das die Suche nach jedem Zeichen startet, sondern erste wenn ich eine Zeitlang (300 ms)nichts mehr getippt habe (IWTimer). Stehe gerade irgendwie neben mir.
Bin für jeden Tipp dankbar !!!

lowmax_5 24. Feb 2014 15:41

AW: IntraWeb Suche
 
Hi,

ein TIwTimer löst diese Aufgabe elegant.

Einfach nach Aufruf den Timer mit

Timer.Enabled:=True

starten und im Event selbst folgenden Code hinzufügen.
Die Timerzeit auf einen Wert vom 250 bis 1000ms einstellen.

Timer.Enabled:=False;
StarteDBAbfrage();

egentur 24. Feb 2014 16:14

AW: IntraWeb Suche
 
Hi lowmax_5
Das ist aber mein Problem,
habe z.B. einen Suchbegriff "actions"
wenn ich nach Eingabe von "a" bei OnAsyncKeyDown bereits der Timer starte,
möchte den Timer aber bei Eingabe eines weiteren Zeichens wieder stoppen und erst nach dem letzten Zeichen starten.

Das timer.enabled := false bei einem bereits gestarteten Timer funktioniert irgendwie nicht

lowmax_5 25. Feb 2014 09:00

AW: IntraWeb Suche
 
Hi,

normalweise verwende ich immer das Event 'OnKeyPress'.

Wenn ein Wort eingegeben wird und es wird die eingestellte Timerzeit zwischen den Eingaben gewartet, startet der Suchvorgang.
Gibt man die Eingabe schnell ein, startet der Suchvorgang daher erst bei dem letzen Buchstaben. Das wäre dann eine inkrementelle suche.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz