Entwickler-Ecke
Sonstiges (Delphi) - GetTickCount verursacht EConvertError ''
CASS - Do 13.07.06 22:14
Titel: GetTickCount verursacht EConvertError ''
Hallo Leute,
kann mir jemand sagen, warum folgender Code immer einen Error auslöst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.StartClick(Sender: TObject); var ProgramStartTick: Cardinal; begin ActiveCommandLine := 1; WriteCommandLine(); ProgramStartTick := GetTickCount; end; |
Grüße Cass
Narses - Do 13.07.06 23:42
Moin!
Kommentier doch mal Zeilen aus, bis es läuft, dann weißt du wo die Fehlerstelle ist. ;)
cu
Narses
CASS - Fr 14.07.06 00:23
Fehler tritt immer bei folgendem Teil auf:
Delphi-Quelltext
1:
| ProgramStartTick := GetTickCount; |
Narses - Fr 14.07.06 00:33
Moin!
An der Zeile und der zugehörigen Deklaration kann man ja nun nicht wirklich viel falsch machen. :gruebel:
Wenn du die Zeile rausnimmst, läuft´s? Sehr merkwürdig... :nixweiss:
Hab ich auch keine weitere Idee zu. :(
cu
Narses
CASS - Fr 14.07.06 09:36
Komischerweise kommt ja auch ein EConvertError ohne Fehlerbezeichnung:
Im Programm ist ein Error vom Typ EConvertError mit folgender Meldung aufgetreten ''.
Delete - Sa 15.07.06 14:34
Schalt mal die Optimierung ab. Eventuell bleibt er nicht an dr richtigen Zeile stehen.
CASS - Di 18.07.06 12:40
Hallo Luckie,
hab die Optimierung ausgeschaltet, Ergebnis bleibt leider das gleiche. Er bleibt immer in der Zeile mit GetTickCount hängen. Ich versteh ja sowieso nicht, warum da ein EConvert Error auftritt. Eigentlich muss er ja gar nichts Konvertieren. Ist ja beides Cardinal, oder?!?
crowley - Di 18.07.06 12:45
versuch es vielleicht mal anstelle des Cardinal mit DWord, ab und an verschluckt sich Delphi erfahrungsgemäß bei Cardinal vs. DWord
C.
Motzi - Di 18.07.06 12:57
Also ich kann mir beim besten Willen nicht vorstellen, dass diese Zeile eine EConvertError-Exception auslöst. Die OH schreibt zu dieser Exception:
Delphi OH hat folgendes geschrieben: |
EConvertError is raised when
- An application makes an unsuccessful attempt to convert an integer, float, date, or time to a string, or to convert a string to one of these other types.
- An application passes an invalid argument to a formatting routine.
- An application attempts to assign one type of component derived from TPersistent to another component derived from TPersistent when such an assignment is not possible. For example, EConvertError is raised by the attempted assignment of a TButton control to a TEdit control.
|
Keiner dieser Punkte trifft auf deine Code-Zeile zu. Ich würde die entsprechenden Code-Stellen mal im CPU-Fenster mit dem Debugger durchgehen. So lassen sich die fehlerhaften Stellen am besten herausfinden..
Gruß, Motzi
Softchaos67 - Di 18.07.06 13:23
Welcher Typ ist den deine lokale Variable?
Falls Integer dann musst du ein Cardianl nehmen, dann gehts...
Nachtrag:
pardon, ist ja schon ein Cardinal
Softchaos67 - Di 18.07.06 13:37
Was macht denn Writecommandline()?
Manchmal bleibt der Debugger auf dem falschen(nächsten) Eintrag hängen. Vieleicht wurde die Exception schon vorher ausgelöst?
Compiliere mal mit Debug-DCU's, vielleicht kommst du dann näher ran.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!