![]() |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
Moin...8-)
Zitat:
Delphi-Quellcode:
FLoadTimer.OnTimer := DoOnLoadTimer;
... procedure TfoBaseRibbon.DoOnLoadTimer(Sender: TObject); begin LoadTimer; end; ... procedure TfoReceipt.DoOnReceiptAfterScroll(Sender: TObject; ReceiptID: Integer; ReceiptDate: TDateTime; ReceiptNumber: string); // kommt von Dataset.AfterScroll begin if (not FInCreation) and (not FIsShowing) then begin FLoadTimer.Enabled := False; FLoadTimer.Enabled := True; end; end; ... procedure TfoAddress.LoadTimer; begin inherited; FLoadTimer.Enabled := False; Zitat:
Zitat:
:wink: |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
Zitat:
Das mache ich dann so: Ich verwende ein TEvent zur Signalisierung, dass ein Scrollevent aufgetreten ist. Daraufhin setzt der Thread das Event zurück und wartet erneut auf das Event mit der vorgegebenen Zeit als Timeout (Event.WaitFor). Tritt nun in der Zwischenzeit das Event erneut auf (Ergebnis wrSignaled), wartet der Thread erneut. Ist das Ergebnis der Warteoperation der Timeout (Ergebnis wrTimeOut), wird ein OnExecute-Ereignis gefeuert, so dass die Verarbeitung starten kann. So stellst du sicher, dass nach dem letzten Scrollereignis genau die gewünschte Zeit vergeht. |
AW: Fehlermeldung "Nicht genügend Timer verfügbar"
Nur so 'ne
Zitat:
Delphi-Quellcode:
. Im Timer-Event prüfst du dann mit
TStopWatch.StartNew
Delphi-Quellcode:
, ob eine ausreichend lange Zeit nach dem letzten Scroll vergangen ist und falls ja reagierst du entsprechend.
TStopWatch.ElapsedMilliseconds
Vorteil: Der Timer wird nur einmal erzeugt und freigegeben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 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