Umstellung D7 -> XE4
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ich möchte gerne unser Projekt von D7 auf XE4 bringen.
Jedoch scheitere ich schon beim Installieren von einigen Komponenten bzw. von Funktionen die diese beinhalten.
Delphi-Quellcode:
folgende Meldung bekomme ich:
function ScanNumber(Value, FormatChars: String; var I: Integer): Boolean;
begin Result := True; I := I + 1; while (Result = True) and (I <= Length(Value)) do begin if Value[I] in ['0'..'9'] then begin I := I + 1; end else if Value[I] = [ThousandSeparator] then begin I := I + 1; end else if Pos(Value[I], FormatChars) <> 0 then begin I := I + 1; end else if Value[I] in [DecimalSeparator] then begin Result := ScanDecimal(Value, FormatChars, I); end else begin Result := False; end; end; end; Anhang 39646 Die Unit SysUtils wäre definiert. Und warum bekomme ich diese Meldung: Implizite String-Umwandlung mit potenziellem Datenverlust von... Welcher Teil ist String und welcher ShortString? Ich seh derzeit den Wald vor lauter Bäume nicht... |
AW: Umstellung D7 -> XE4
1. Fehler habe ich selbe gefunden
Es muss FormatSettings.ThousandSeparator lauten |
AW: Umstellung D7 -> XE4
Hallo,
beim DecimalSeperator sollte das gleiche Problem sein, wie beim ThousandSeparator. Für die anderen Fehler wäre es hilfreich zu wissen, welche Zeile es ist aus Deinem Codeschnipsel. |
AW: Umstellung D7 -> XE4
Die Warnung
Implizite String-Umwandlung mit potenziellem Datenverlust von .. bekomme ich in dieser Zeile:
Delphi-Quellcode:
end else if Value[I] = [ThousandSeparator] then begin |
AW: Umstellung D7 -> XE4
Zitat:
|
AW: Umstellung D7 -> XE4
Zitat:
|
AW: Umstellung D7 -> XE4
Zitat:
da hast du schon recht. Ich habe den Source auch nur übernommen und versuche in auf XE4 zu hieven. Die eckigen Klammern habe ich schon enfernt. Aber warum bekomme ich diese Meldung? |
AW: Umstellung D7 -> XE4
function ScanNumber(Value, FormatChars: String; var I: Integer): Boolean;
begin Result := True; I := I + 1; while (Result = True) and (I <= Length(Value)) do if CharInSet(Value[I], ['0'..'9']) then Inc(I) else if Value[I] = FormatSettings.ThousandSeparator then Inc(i) else if (Pos(Value[I], FormatChars) <> 0) then Inc(i) else if Value[I] = FormatSettings.DecimalSeparator then Result := ScanDecimal(Value, FormatChars, I) else Result := False; end; |
AW: Umstellung D7 -> XE4
Wenn schon XE4, warum dann nicht die coolen intrinsischen Record-Helper?
Statt
Delphi-Quellcode:
einfach
if CharInSet(Value[I], ['0'..'9']) then
Delphi-Quellcode:
?
if Value[i].isNumber() then
Ich liebe die Dinger. CharInSet hat eine überladene Methode mit AnsiChars als Parameter, wahrscheinlich castet er nach AnsiChar runter weil es die erste Methode ist, die passt? |
AW: Umstellung D7 -> XE4
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz