![]() |
timeGetTime Division durch 0
Um mein Fenster(bis es grau ist) stepweise einzufaden verwende ich timeGetTime
Mein Problem dabei ist nun das wenn ich die Anwendung debugge das ich ein Division durch 0 erhalte bedingt durch den Haltepunkt. Wie kann ich diesen fehler abfangen? WinProcessmessages scheint dafür nicht die ideale lösung. gruss |
AW: timeGetTime Division durch 0
Bei was genau erhälst du eine Division durch Null?
Wenn du irgendwie durch eine Variable teilst: überprüfe sie doch einfach vorher und setze sie etweder auf einen vernünftigen Wert oder lass dann das Dividieren. |
AW: timeGetTime Division durch 0
Zitat:
Delphi-Quellcode:
Hier kracht es meistens
for IntI := 0 to 100 do
begin dwStartCount := timeGetTime; if m_hNewBitmap <> 0 then begin DeleteObject(m_hNewBitmap); m_hNewBitmap := 0; end; m_hNewBitmap := FadeBitmap(m_hBitmap, IntI); OnDraw(ClientDC); dwEndCount := timeGetTime; if nStep = 0 then begin // timer frequency calculation if (dwEndCount > dwStartCount) then nStep := 1500 div (dwEndCount - dwStartCount) else nStep := 20; // time to frequency nStep := 100 div nStep; nStep := max(nStep, 3); nStep := min(nStep, 49); end; end; Aber nur wenn ich die Schleife duch einen Haltepunkt unterbreche.
Delphi-Quellcode:
nStep := 100 div nStep;
gruss |
AW: timeGetTime Division durch 0
Zitat:
Das ist die einzige korrekte Möglichkeit. Via IF prüfen, ob 0 und dann was Anderes machen. |
AW: timeGetTime Division durch 0
Wenn das Programm am BreaakPoint anhält, kann es vorkommen, daß die Differenz der beiden TimeStamps größer als 1500 ms ist. Dann wird nStep = 0.
Daß kann übrigens auch durch einen längeren Aufenthalt in OnDraw passieren. |
AW: timeGetTime Division durch 0
Zitat:
Delphi-Quellcode:
if nStep = 0 then
break; // time to frequency nStep := 100 div nStep; Zitat:
In dem Fall müßte ich mir noch was anderes überlegen. Das zeichnen sollte aber eigentlich in 1.5 Sekunden erledigt sein. gruss |
AW: timeGetTime Division durch 0
Mir fehlt ein bisschen der Kontext und weiterer Quellcode, um das Ursprungsproblem zu verstehen, aber warum nimmst du nicht einfach einen TTimer und machst das Schrittweise einfaden über OnTimer?
|
AW: timeGetTime Division durch 0
Zitat:
Sollte jedoch das Faden nicht so sein wie ich es mir wünsche (abhängig von der Zeit) wäre das eine alternative. PS: TTimer kann ich so nicht verwenden müßte dann ein APITimer sein (bzw. bevorzugt) da ich über keine Form in der DLL verfüge. Wäre aber kein problem das zu machen .. notfalls gruss |
AW: timeGetTime Division durch 0
Nen Thread eventuell? Damit mach ich eh immer meine Fading-Forms. Ziemlich handlich!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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