AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

Ein Thema von Bünni · begonnen am 7. Apr 2019 · letzter Beitrag vom 8. Apr 2019
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von dummzeuch
dummzeuch
Online

Registriert seit: 11. Aug 2012
Ort: Essen
1.613 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 7. Apr 2019, 13:46
Der Timer wird im OnChange zurückgesetzt und die Verzögerung beträgt 500ms.
OnChange, weil er dann auch zurückgesetzt wird, wenn ich das Edit.Text Property per Code setze und nicht durch manuelle Eingabe.
Du solltest ihn auch bei OnKeyDown zurücksetzen, sonst werden Tastendrücke, die nur den Cursor bewegen, nicht berücksichtigt.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.592 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 7. Apr 2019, 14:45
Welche Methode ist heutzutage die von Benutzern eher akzeptierte Methode?
Ich glaube nicht, dass ein Benutzer warten will. Diese verzögerten Suchmasken wurden ja nicht gemacht, weil es so sein soll, sondern weil es technisch eben nicht anders ging.

Heute sind die PCs schneller, so dass es meistens keine Notwendigkeit mehr dafür gibt.

Im Falle unseres Background-Compilers z.B. geben wir Änderungen live an den Compilerthread weiter, wobei dann die dadurch ungültigen Teile wieder verworfen werden. Insgesamt sind so die Eingabehilfen aber sehr schnell da.

Bei blockierenden Anfragen an Dateisysteme oder Webservices verwenden wir stattdessen tatsächlich jeweils einen neuen Thread, damit die GUI bei Fehleingaben nicht blockiert wird.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Bünni

Registriert seit: 4. Mär 2019
67 Beiträge
 
#13

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 7. Apr 2019, 14:47
Wenn das erlaubt ist, würde ich dafür gerne ein neues Thema öffnen. Das könnte eine sehr interessante Diskussion werden.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 7. Apr 2019, 14:56
Ok, die Idee mit dem Timer ist natürlich eine Lösung auf die ich nicht gekommen bin.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 8. Apr 2019, 05:11
Hallo,
entscheiden tut der Anwender.
Wenn 500 zu langsam, nimm einen kleineren Wert.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 8. Apr 2019, 09:29
Mach den Verzögerungswert einfach optional einstellbar - bei Null wird nicht gewartet und gut ist (siehe Systemsteuerung/Tastatur). Es gibt Szenarien, in denen das sehr sinnvoll ist und ich hatte es auch mal mit einem Timer gelöst; ein Thread wäre mglw eleganter, aber zuviel Aufwand im Verhältnis. IMHO.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.592 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 8. Apr 2019, 11:30
ich hatte es auch mal mit einem Timer gelöst; ein Thread wäre mglw eleganter, aber zuviel Aufwand im Verhältnis. IMHO.
Ich halte hier einen Thread nicht für eleganter, im Gegenteil. Das Zurücksetzen des Timers ist kostengünstig und ein Timer ist auch genau dafür gedacht nach einer bestimmten Zeit etwas auszuführen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.100 Beiträge
 
Delphi 12 Athens
 
#18

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 8. Apr 2019, 11:55
Ich benutze für sowas auch gerne Timer.

Weil ich seit Win95 oder WinXP aber immer das Damoklesschwert von "zu wenig vorhandenen Timer-Resourcen" im Hinterkopf habe, bleibt da immer ein ungutes Gefühl bestehen.

Vielleicht kann mich jemand da jemand beruhigen, dass sowas in modernen Systemen nicht mehr auftreten kann
(Natürlich rede ich nicht davon wenn man irgendwo massiv zig-tausende Timer verwenden würde,
sondern von einem normalen Fall von Timer in einer handvoll Units).

Unter welchen Umständen würde wohl so ein Timer nicht korrekt feuern ?

Geändert von Rollo62 ( 8. Apr 2019 um 12:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.462 Beiträge
 
Delphi 12 Athens
 
#19

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 8. Apr 2019, 12:54
Vielleicht kann mich jemand da jemand beruhigen, dass sowas in modernen Systemen nicht mehr auftreten kann
Raimond Chen kann das vermutlich: What is the maximum number of timers a program can create?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.100 Beiträge
 
Delphi 12 Athens
 
#20

AW: Auf Ende der Eingabe im TEdit warten und Inhalt verzögert verarbeiten

  Alt 8. Apr 2019, 13:02
Dankeserh für den Link.
So ganz beruhigt bin ich leider noch nicht
Wer weiss schon wieviel Timer Delphi, 3rd PArty, o.ä. intern nutzen ?

Für generelle Timing-Verzögerungen habe ich mir einen "DelayWorker" gebaut,
mit einem Timer der mehrere anonyme Procs in der richtigen Sequenz feuern kann.
Damit bin ich dann wohl doch auf der sichereren Seite.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 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