Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 240958 (2394)

| Suchen
| Zurück zur Übersicht

Autor | Thema: numerisches Eingabefeld
Rainer Hoefs
| Datum:11.08.02 01:38 (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 (Kerzenlicht@chello.at) |
Hallo, Sieh mal in der Hilfe unter @Format$ nach. Gruß Thomas
Rainer Hoefs
| Datum:11.08.02 14:23 (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 (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 (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