![]() |
Fehlermeldung "Nicht genügend Timer verfügbar"
Hallöle...8-)
In den letzten 2 Wochen hatte ich folgende Meldung 2x: Zitat:
...weil ich das erste Mal das ignoriert hatte, weiß ich nicht, ob es der selbe Arbeitsplatz war. :oops: PS: die Tante ist mit diesem Fehler und Delphi/VLC dürftig. Da war nur von Skins die Rede. PS: Die Timer sind schon seit Jahren drin...problemlos. Was kann ich noch kontrollieren? :roll: Danke |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
Hey, ich erinnere mich sowas vor Jahren mal gesehen zu haben. Da hatte ich versucht Timer mehrmals pro Sekunde an und aus zu schalten.
Es scheint so zu sein dass jedesmal intern ein neuer Timer erzeugt wird. Die alten aber nicht sofort freigegeben werden. Damals konnte man damit den Rechner zu einem Freeze/Bluescreen bewegen. Ich verwende so gut wie überhaupt keine TTimer mehr. Sondern eigene Threads die via QueryPerformanceCounter arbeiten. |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
![]() Zitat:
|
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
Liste der Anhänge anzeigen (Anzahl: 1)
Danke... :wink:
Zitat:
...again what learned. :stupid: Zitat:
Fazit: Kannst machen nix, mußt du gucken zu... :stupid: Zitat:
...wieder Arbeit...Umbau auf Thread. :cry: |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
SetTimer kennt nicht nur OutOfRessources ... tja, wenn man GetLastError/SysErrorMessage vergisst und nicht den "richtigen" Fehler anzeigt. :freak:
|
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
TTimer ist aus meiner Sicht gruselig implementiert. Erfüllt aber sicher seinen Zweck für den er gedacht ist.
Wenn ich deinen Fall richtig verstehe, also eine verzögerte Aktion nach einer Scrollaction auszuführen, ist villeicht ein ganz anderer Ansatz sinnvoller. Am Ende brauchst du ja nur ein Event für deine Aktion, aber sicher nicht für jedes ScollEvent, sondern nur einmal nach dem letzten ScrollEvent. |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
Nunja, es gibt/gab keine Möglichkeit rauszufinden welcher Timer vorhanden/aktiviert ist.
Drum nutzen die einfach immer blind ID 0, mit jeweils einem eigenem Fenster. Die andere Variante wäre ja z.B. im Owner-Fenster den Timer zu nutzen, aber wenn du mehrere TTimer und/oder sonstwas hast, dann müssten irgendwie die IDs verteilt werden. Und im FMX dann nochmal verschachtelt, oder gar ganz anders, für andere Platformen. Es gibt noch eine/mehrere andere uralte MultiMediaTimer-APIs, welche z.B. mit einem Thread arbeiten, anstatt mit Window-Messages. z.B. ![]() |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
Ein weiteres Problom könnte sein, dass der Timer bereits wieder ausgelöst wird, während die Timerroutine noch nicht vollständig abgearbeitet ist.
Seit dem ich bei Timerroutinen zuerst den Timer ausschalte und am Ende wieder einschalte, hab' ich das Problem nicht mehr gehabt.
Delphi-Quellcode:
procedure Tform1.tmTimer(Sender: TObject);
begin tm.Enabled := false; // tu mal was tm.Enabled := true; end; |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
Zitat:
Das ist ja auch einer der Gründe, warum man kein Application.ProcessMessages aufrufen soll, denn dann könnte tatsächlich der Eventhandler rekursiv aufgerufen werden. Dann nutzt aber das Disablen des Timers auch nicht wirklich viel, da das ein Re-Entering nicht 100%ifg verhindern kann - es könnten ja schon weitere Timer-Messges in der Queue sein. Das Disable/Enable erzeugt aber unnötig weitere KillTimer/SetTimer Aufrufe und belastet das System eigentlich mehr als es hilft. |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
Das mag theoretisch alles so stimmen, meine praktische Erfahrung mit Delphi 7 ist halt, dass das Problem bei mir seit gefühlt 10 Jahren nicht mehr auftritt, seitdem ich die Timer zuerst auf Enabled Disabled setze, dann die Timerlogik abarbeiten lasse und dann den Timer wieder auf Enabled setze.
Und nein, schön find' ich das nicht, aber besser als ab und an 'ne Exception wegen Timerfehlern ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz