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 6. Apr 2019 · letzter Beitrag vom 8. Apr 2019
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Uwe Raabe
Uwe Raabe

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

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

  Alt 8. Apr 2019, 12:08
(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)
Ich habe hier ein Alt-System, da laufen ca. 80 Timer gleichzeitig ohne Probleme. Es ist dabei viel wichtiger die Intervalle an die benötigen Event-Laufzeiten anzupassen, als über eine Handvoll Timer mehr oder weniger nachzudenken
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#22

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

  Alt 8. Apr 2019, 12:15
Einfachste Methode:

Timer am Anfang des Ereignisses ausschalten und am Ende wieder einschalten.

Besagtes Problem kenne ich nur, wenn ein (oder mehrere) Timer sich selbst "überholt", also das Timerereignis bereits ausgelöst wird, während es noch abgearbeitet wird.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

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

  Alt 8. Apr 2019, 13:37
Timer am Anfang des Ereignisses ausschalten und am Ende wieder einschalten.
Klar, aber das löst nicht das Problem, daß dann dauerhaft die CPU (bzw. ein Kern) ausgelastet ist, wenn die Timer-Events quasi im Dauerfeuer triggern. Da muss man sich dann schon fragen, ob so kurze Intervalle überhaupt nötig sind, wenn sie dann eh nicht eingehalten werden können.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#24

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

  Alt 8. Apr 2019, 13:46
Timerintervalle sind bei mir eher im Sekunden- oder Minutenbereich, 'nen Timer alle paar Millisekunden auslösen ist eher 'ner Ausnahme. Allenfalls zur Pegelabfrage bei der Bass.dll, um "irgendwas flackern zu lassen" Aber kürzer als 20 ms macht ein System unbrauchbar.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#25

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

  Alt 8. Apr 2019, 14:25
Ja sicher, ich denke hierbei an Intervalle so um die >= 200ms.
Kürzer geht auch, wird aber auch entsprechend kritischer, da würde ich versuchen andere Lösungen zu finden.

Ich benutze oft einen Master-Timer mit einem "kleinsten gemeinsames Intervall",
welches dann durch einfache Integer-Zähler auch mehrere größere Delay-Intervalle erzeugen kann.
Das schont die Timer-Resourcen, ist aber nicht in allen Fällen anwendbar.
Insbesondere für UI-Timing, aber selbst für exaktes Scheduling im Bereich mehrerer Stunden bis Tage ist das aber normalweise durchaus ausreichend.


Und richtig:
Das Einpacken von OnTimer in FTimer.Enabled := False; .... FTimer.Enabled := True; ist ein Muss um Überläufe zu verhindern.
Es sei denn es kommt auf absolut exakte Perioden an, dann müsste man die OnTimer-Rountine besser vom Intervall entkoppeln.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

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

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

  Alt 8. Apr 2019, 16:11
Aber kürzer als 20 ms macht ein System unbrauchbar.
Ist nicht das minimale Timer-Interval sowieso nur ca. 40 ms ?
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

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

  Alt 8. Apr 2019, 16:24
Ist nicht das minimale Timer-Interval sowieso nur ca. 40 ms ?
Nein, 10 ms (ich glaube seit Windows XP): USER_TIMER_MINIMUM (0x0000000A) (aus WinUser.h)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 00:01 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