Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 241845 (3281)
  Suchen
 Zurück zur Übersicht
 AutorThema: numerisches Eingabefeld
Rainer Hoefs
Datum:11.08.02 01:38 Antwortenals Email verschicken (rhoefs@rhcarpetdesign.de) 


Hallo profaner/innen

suche nach einem Eingebfeld welches durch die einfache Eingabe von Zahlen automatisch eine Umformatiereung wie unten vornimmt:
Eingabe = Formatierte Darstellung
1 = 0,01
12 = 0,12
123 = 1,23
1234 = 12,34
12345 = 123,45
123456 = 1.234,56
1234567 = 12.345,67
12345678 = 123.456,78
123456789 = 1.234.567,89
usw.

Falls jemand solch einen Sourcecode hat wäre ich für eine Übermittlung an meine emailadresse dankbar.

MFG
Rainer Hoefs



Thomas Ungerböck
Datum:11.08.02 01:57 Antwortenals Email verschicken (Kerzenlicht@chello.at) 


Hallo,
Sieh mal in der Hilfe unter @Format$ nach.
Gruß Thomas


Rainer Hoefs
Datum:11.08.02 14:23 Antwortenals Email verschicken (rhoefs@rhcarpetdesign.de) 


Hallo und danke,
aber darum geht es nicht. Ich möchte erreichen, daß bei jeder Eingabe einer Zahl das Feld upgedated wird. Klar mit Format$ kann man das Feld nach der Eingabe neu formatieren und mit SetText darstellen. Was ich möchte ist ein numerisches feld in da man nacheinander die Zahlen eingibt und sofort die entsprechende Formatierund hat.

Weiß dazu jemand Hilfe.

Im Moment gebe ich die Zahl ein und checke ständig ob das "€"-Zeichen im String ist. Dann formatiere ich nachdem das €-zeichen eingeben wurde.

MFG Rainer Hoefs


Jörg Sellmeyer
Datum:11.08.02 19:40 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo Rainer,
Zu einem Edit ist mir so recht nichts einefallen, da die Cursorpositionierung
einem immer wieder einen Strich durch die Rechnung macht - besonders im Bereich unter Null.
Aber vielleicht hilft Dir das hier weiter:
Cls
PROC Zahleausgabe
  Declare Ausgabe$
  Text$ = Chr$(%key) + Text$
  IF Or(LT(Len(Text$),3),Lt(Val(Text$),1))
    Ausgabe$ = Format$("###,###,###0.00",Val(Text$) / 100)
  ELSEIF And(GT(Len(Text$),2),Gt(Val(Text$),1))
    Ausgabe$ = If(%key = 48,("0" + Format$("###,###,###0.00",Val(Text$) / 100))\
    ,Format$("###,###,###0.00",Val(Text$) / 100))
  ELSEIF Equ(%key,2)
    LET ende% = 1
  EndIf
  Locate 1,1
  PRINT Ausgabe$
EndProc

Declare ende%,Text$
WHILENOT ende%
  WaitInput
  IF And(Gt(%key,47),Lt(%key,58))
    Zahleausgabe
  EndIf
Wend


Außerdem gibt es noch die Möglichkeit mit
Sendmessage(Edit&,$00B1,sub(Position%,1),Position%)
einzelne Buchstaben zu markieren und so zu überschreiben.
Gruß
Jörg


Jörg Sellmeyer
Datum: 11.08.02 22:08 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo,
Wenn Du statt "Print Ausgabe$" "Return Ausgabe$" nimmst, kannst Du mit:
SetText Edit&,@$(0) die Ausgabe ins Edit schreiben. Zwar ist das nicht direkt
reingeschrieben aber immerhin.
Gruß
Jörg



 Zurück zur Übersicht