![]() |
EConvertError "$"
Ich bekomme diese Meldung seit 2009.
"$" ist kein gültiger integer wert.
Delphi-Quellcode:
var
GetSys : Integer; ... GetSys := GetOperatingSystem;
Delphi-Quellcode:
Das problem hatte ich unter 2006 nicht
unit uSysInfo;
interface uses windows, SysUtils, Messages ; const { operating system (OS)constants } cOsUnknown = -1; cOsWin95 = 0; cOsWin98 = 1; cOsWin98SE = 2; cOsWinME = 3; cOsWinNT = 4; cOsWin2000 = 5; cOsXP = 6; cOsVista = 7; function GetOperatingSystem: Integer; implementation function GetOperatingSystem: Integer; var osVerInfo: TOSVersionInfo; majorVer, minorVer: Integer; begin { set operating system type flag } osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); if GetVersionEx(osVerInfo) then begin majorVer := osVerInfo.dwMajorVersion; minorVer := osVerInfo.dwMinorVersion; case osVerInfo.dwPlatformId of VER_PLATFORM_WIN32_NT: { Windows NT/2000 } begin if majorVer <= 4 then Result := cOsWinNT else if (majorVer = 5) and (minorVer = 0) then Result := cOsWin2000 else if (majorVer = 5) and (minorVer = 1) then Result := cOsXP else if (majorVer = 6) and (minorVer = 0) then Result := cOsVista else Result := cOsUnknown; end; VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } begin if (majorVer = 4) and (minorVer = 0) then Result := cOsWin95 else if (majorVer = 4) and (minorVer = 10) then begin if osVerInfo.szCSDVersion[1] = 'A' then Result := cOsWin98SE else Result := cOsWin98; end else if (majorVer = 4) and (minorVer = 90) then Result := cOsWinME else Result := cOsUnknown; end; else Result := cOsUnknown; end; end else Result := cOsUnknown; end; end. Kann mir jemand sagen wo das problem liegt ? Kann da keinen Fehler entdecken. gruss Emil |
Re: EConvertError "$"
[quote="EWeiss"]Ich bekomme diese Meldung seit 2009.
"$" ist kein gültiger integer wert.
Delphi-Quellcode:
...
VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } ... Delphi 2009 Anwendungen können auf diesen Windows Versionen nicht laufen. Der Fehler kann also schon mal nicht in diesem Zweig stecken :) Bis wo kommt man denn mit dem Debugger in der Funktion? Edit: der Code gibt bei mir unter Windows XP den richtigen Wert (6) zurück, ohne Fehlermeldung. |
Re: EConvertError "$"
[quote="mjustin"]
Zitat:
Vorher hatte ich das problem nicht. Muss nochmal genau debugen. Hab vielleicht Scheuklappen vor den Augen (Bin nicht mehr der Jüngste) hehehehheee gruss Emil |
Re: EConvertError "$"
Der Fehler muss woanders auftreten, da es hier kein StrToInt() Aufruf gibt.
|
Re: EConvertError "$"
Im Zweifel erst mal auf Unicode schieben und folgendes versuchen?
Delphi-Quellcode:
var
osVerInfo: TOSVersionInfoA; majorVer, minorVer: Integer; begin { set operating system type flag } osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfoA); if GetVersionExA(osVerInfo) then |
Re: EConvertError "$"
Zitat:
Lag an anderer stelle und war ein problem mit UniCode
Delphi-Quellcode:
bei PAnsiChar kracht es da die nachfolgenden Buchstaben hinter ´
for p := 0 to WStyleList.Count - 1 do
begin x := pos(',', WStyleList.Strings[p]); WValue.Add(AnsiMidStr(WStyleList.Strings[p], x + 1, StrLen(PWideChar(WStyleList.Strings[p])))); WStyleList.Strings[p] := AnsiMidStr(WStyleList.Strings[p], 1, x - 1); end;
Delphi-Quellcode:
abgeschnitten werden.
StrLen(PWideChar(WStyleList.Strings[p]))))
Dann bleibt von
Delphi-Quellcode:
nur noch ein "$" übrig.
format('$%8.8x'
Bei der abfrage von wert
Delphi-Quellcode:
kracht es dann natürlich.
Ivalue := StrToInt(WValue.Strings[p]);
Seltsam aber das der Compiler in der zeile stehen bleibt
Delphi-Quellcode:
und nicht hier
GetSys := GetOperatingSystem;
Delphi-Quellcode:
in einer ganz anderen procedure wo der Fehler auftritt.
Ivalue := StrToInt(WValue.Strings[p]);
Und der witz die ist nicht mal in der gleichen Unit. gruss Emil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 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