AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi probleme mit formatierter Ausgabe in Edit.TXT
Thema durchsuchen
Ansicht
Themen-Optionen

probleme mit formatierter Ausgabe in Edit.TXT

Ein Thema von tedbomi · begonnen am 17. Jul 2009 · letzter Beitrag vom 19. Jul 2009
Antwort Antwort
Seite 1 von 2  1 2      
tedbomi

Registriert seit: 27. Mai 2009
Ort: Rostock
17 Beiträge
 
#1

probleme mit formatierter Ausgabe in Edit.TXT

  Alt 17. Jul 2009, 12:42
Hallo Leute,

ich habe eine kleine Maske zum Erfassen von Preis, Anzahl und einer zu berechnenden Summe eingerichtet.

Die Ausgabe soll nicht "12345,67", sonder so aussehen "12.345,67". Mit folgenden Zeilen habe ich mein Problem realisiert:


Delphi-Quellcode:
procedure TForm1.EinpreisKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
Var Preis,Summe: Real;
begin

  If Key=13 Then
    begin
      Preis:=StrToFloat(ol(EinPreis.Text));
      EinPreis.Text:=' '+FloatToStrF(Preis,ffNumber,8,2);
    end;

Nach ENTER soll also die Eingabe formatiert angezeigt werde. Es klappt bis 999,99 ganz gut, ab 1000.00 kommt eine Fehlermeldung:


------------------------
Im Projekt Lehrer.exe ist eine Exception der Klasse EConvertError mit der Meldung ''1.000,00' ist kein gültiger Gleitkommawert' aufgetreten.
------------------------

Was mache ich falsch, bzw. was habe ich übersehen?

Ich bin neugierig auf die, sicherlich einfachen, Hinweise

TedBomi
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: probleme mit formatierter Ausgabe in Edit.TXT

  Alt 17. Jul 2009, 12:47
Was macht die Funktion ol ?
Hast du den DecimalSeperator bzw. das Tausendertrennzeichen umgestellt ?
  Mit Zitat antworten Zitat
tedbomi

Registriert seit: 27. Mai 2009
Ort: Rostock
17 Beiträge
 
#3

Re: probleme mit formatierter Ausgabe in Edit.TXT

  Alt 17. Jul 2009, 15:10
Hallo Jfheins,

Zitat:
Was macht die Funktion ol ?
ol ist eine kleine Funktion, die dafür sorgen soll, dass vor und hinter der Eingabe alle Leerzeichen beseitigt werden. Ob mit oder ohne diese Funktion, mein Problem bleibt das selbe.

Du sprichts den Tausenderpunkt an, könnte da das Problem drin stecken?

TedBomi
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: probleme mit formatierter Ausgabe in Edit.TXT

  Alt 17. Jul 2009, 16:35
Zitat von tedbomi:
Du sprichts den Tausenderpunkt an, könnte da das Problem drin stecken?
Das isses!
1000,00 wird akzepiert, bei 1.000,00 klallt's

Gruß
K-H
  Mit Zitat antworten Zitat
tedbomi

Registriert seit: 27. Mai 2009
Ort: Rostock
17 Beiträge
 
#5

Re: probleme mit formatierter Ausgabe in Edit.TXT

  Alt 17. Jul 2009, 20:56
Hallo,

mein Problem habe ich folgendermaßen gelöst:

Delphi-Quellcode:
EinPreis.Text:=StringReplace(EinPreis.Text,'.','',[rfReplaceAll]);
Preis:=StrToFloat(EinPreis.Text;
Ich entferne einfach den Punkt aus meinem String und wandele ihn erst dann in das Float-Format um.

es ist eine Lösung, vielleicht gibt es eine einfachere?

schönes Wochenende

TedBomi
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: probleme mit formatierter Ausgabe in Edit.TXT

  Alt 17. Jul 2009, 20:59
Wenn du den tausendertrennpunkt mit eingibst, dann kommt es bei StrToFloat zu einer EConvertError Exception, weil es keine gültige Fleißkommazahl ist.

Und deine eigene Funktion kannst du dir sparen. Guck dier in der Hilfe mal die Funktion trim an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

Re: probleme mit formatierter Ausgabe in Edit.TXT

  Alt 17. Jul 2009, 21:33
Zitat von Luckie:
Und deine eigene Funktion kannst du dir sparen. Guck dier in der Hilfe mal die Funktion trim an.
Du könntest aber das StringReplace darin kapseln.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: probleme mit formatierter Ausgabe in Edit.TXT

  Alt 17. Jul 2009, 21:42
Würde ich nicht machen, weil es schelchter Stil ist, wenn eine Funktion mehrere Sachen macht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: probleme mit formatierter Ausgabe in Edit.TXT

  Alt 17. Jul 2009, 22:00
Zitat von Luckie:
Würde ich nicht machen, weil es schelchter Stil ist, wenn eine Funktion mehrere Sachen macht.
Wieso zwei Sachen? Sie macht eine Sache: Sie normalisiert die Eingabe.

Edit: Man sollte der Funktion dann aber nen aussagekräftigen Namen geben.
  Mit Zitat antworten Zitat
tedbomi

Registriert seit: 27. Mai 2009
Ort: Rostock
17 Beiträge
 
#10

Re: probleme mit formatierter Ausgabe in Edit.TXT

  Alt 19. Jul 2009, 12:44
Hallo Luckie und NamenLozer,

Zitat:
Wenn du den Tausendertrennpunkt mit eingibst, dann kommt es bei StrToFloat zu einer EConvertError Exception, weil es keine gültige Fleißkommazahl ist.
Die Eingabe erfolgt nicht manuell, sondern durch FloatToStrF(Preis,ffNumber,8,2).

Zitat:
Und deine eigene Funktion kannst du dir sparen. Guck dir in der Hilfe mal die Funktion trim
Diese Funktion kannte ich noch nicht, funktioniert aber gut, meine ist damit tatsächlich überflüssig.

Zitat:
Man sollte der Funktion dann aber nen aussagekräftigen Namen geben
Ich fand den Namen eindeutig: ol() - ohne Leerzeichen

Vielen Dank für die Anregungen

TedBomi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 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