Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.111 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: Soll die Taste auf dem Nummernblock ein Dezimaltrennzeichen sein?

  Alt 14. Sep 2015, 08:35
Ich bin bislang nicht dazu gekommen und habe es so gelassen, wie es momentan ist:
  1. Das VCL-Touchkeyboard zeigt an, was auch auf der physischen Tastatur ist
  2. Es wird auch eingegeben, was auf den Tasten steht. Ein Franzose gibt also einen Punkt ein.
  3. Das Programm prüft einfach auf alle bekannten Trennzeichen. Wenn bei einem ein vernünftiger Wert rauskommt dann ist das Programm zufrieden

Also so:
Delphi-Quellcode:
function TFloatInputPopup.tryParse(out value: Single): Boolean;
const
   knownSeparators: TArray<Char> = ['٫', ',', '.']; // 1st = Momayyez
var
   testedSeparator:   Char;
   formatSettings:      TFormatSettings;
begin
   Result := False;

   formatSettings := TFormatSettings.Create(LOCALE_INVARIANT);
   for testedSeparator in knownSeparators do begin
      formatSettings.DecimalSeparator := testedSeparator;
      Result := Result or Single.TryParse(inputEdit.Text, value, formatSettings);
      if Result then Break;
   end;
end;
Und ja, im Endeffekt ist das die billigste Methode. Und beinhaltet noch gar nicht die Arbeit welche du dir mit dem TouchKeyboard gemacht hast
  Mit Zitat antworten Zitat