Einzelnen Beitrag anzeigen

franz22

Registriert seit: 17. Sep 2007
7 Beiträge
 
#1

IN durch CharInSet ersetzen

  Alt 25. Nov 2015, 08:24
Delphi-Version: XE7
Hallo zusammen,

beim Öffnen eines, mit Delphi2007 erstellten Programms, mit Delphi XE7 bekomme ich folgende Meldung angezeigt:
[dcc32 Warnung] Unit1.pas(4190): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt. Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtils' in Betracht.

Die beanstandete Quelltextzeile dazu ist:
  if not (Key in ['0'..'9', ',', '-', Char(VK_BACK), Char(VK_DELETE)]) then Key:= #0; Diese Konstruktion stammt übrigens aus dem Easy Delphi Helper.

Nun habe ich das nach CharInSet() umgeformt, aber der Quelltext erstreckt sich jetzt über mehrere Zeilen:
Delphi-Quellcode:
  if not CharInSet(Key,['0'..'9']) then
    if not CharInSet(Key,[',']) then
      if not CharInSet(Key,['-']) then
        if not CharInSet(Key,[Char(VK_BACK)]) then
          if not CharInSet(Key,[Char(VK_DELETE)]) then Key:= #0;
Hat jemand eine Idee, wie es noch kürzer geht (Ja, ich weiß, das alles passt auch in eine Zeile), eventuell mit anderen Methoden?

Vielen Dank das Ihr Euch diesen Thread angeschaut habt.

Grüße
Franz

Geändert von mkinzler (25. Nov 2015 um 08:27 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat