Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: (N)umerisches Feld akzeptiert keinen Punkt

  Alt 26. Mai 2006, 18:15
Hallo Lombi,

wenn ich deine Zeilen richtig interpretiere, dann möchtest du in deinem Control EditEKpreis eine Zahl mit Nachkommastellen im amerikanischen Display-Format (DecimalPoint ist Punkt, ThousandSeparator ist Komma) eingeben dürfen und diese Zahl soll beim Verlassen des Edit-Controls im passenden Datenfeld einer updatefähigen Query gespeichert werden, die du vorher in den korrekten Zustand (Edit oder Insert) versetzt hast. Hier die nötigen Änderungen:

Delphi-Quellcode:
procedure TDemoForm.EditEKpreisExit(Sender: TObject);
var
  value: Extended;
begin
  value := StrToFloat(Translate(EditEKpreis.Text, '.,', DecimalPoint));
  with QueryArtikel do
    FieldByName('EKpreis').AsFloat := value;
end;
Die Funktion Translate nimmt den Text aus dem Eingabe-Control entgegen und setzt jedes Vorkommen eines Zeichens aus dem zweiten Parameter in das korrespondierende Zeichen aus dem dritten Parameter um. Es wird also '.' in SysUtils.DecimalPoint umgesetzt. Für das Komma im zweiten Parameter gibt es kein entsprechendes Zeichen im dritten Parameter. Solche Zeichen werden dann einfach entfernt. Unix-Kenner sollten dieses Verhalten vom utility tr her kennen.

Zitat:
Was bedeutet: '123,456.78'?
Ein fiktiver Geldbetrag im amerikanischen Display-Format.

Grüße vom marabu
  Mit Zitat antworten Zitat