Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie erstelle ich eine Maske für Währung? (https://www.delphipraxis.net/14101-wie-erstelle-ich-eine-maske-fuer-waehrung.html)

mojo777 2. Jan 2004 11:46


Wie erstelle ich eine Maske für Währung?
 
HOHO! Frohes Neues etc...
wie erstelle ich eine Maske bei dmEditMask, wo man halt Werte eingeben kann, die immer so aussehebn:
123,45
1,25
15478,25
??? :gruebel:
Ich habe eben versucht das selbst zu schreiben, aber edName.Text[counter]:=... kann man nichts zu weisen. buh!
:cry:
Danke.

MisterSonic 4. Jan 2004 11:33

Re: Wie erstelle ich eine Maske für Währung?
 
Hye,

warum nimmst denn kein MaskEdit?

Als EditMaske müsstest Du dann nur "9999,99;1;_" setzen, das heißt Du kannst hier z.B. nen vierstelligen Preis eingeben, Plus 2 Zeichen für Cent. Sieht vielleicht nicht superschön aus aber sollst es ja nicht Heiraten. :) Hoffe ich konnt Dir helfen.

MfG Patrick.

mojo777 7. Mai 2004 22:45

Re: Wie erstelle ich eine Maske für Währung?
 
Nein das reicht nicht aus....

ich stelle mir das eher so vor, wie bei einem kassenautomat... man gibt einfach zahlen ein, und die ltzten 2 werden als nachkommastellen behandelt...

Nicolai1234 7. Mai 2004 23:25

Re: Wie erstelle ich eine Maske für Währung?
 
Dann teil die Zahl doch einfach durch 100!

mojo777 7. Mai 2004 23:53

Re: Wie erstelle ich eine Maske für Währung?
 
arsch!
............ ich sitze hier schon seit 1 stunde und bin schon fast soweit eine eigene komponenten gebastelt zu haben und da kommst du mit diesem geistesblitz...... solche beiträge sollte man echt verbieten!!!!

:-)
:idea:
:thuimb:

danke!
:stupid:
:party:

mojo777 7. Mai 2004 23:57

Re: Wie erstelle ich eine Maske für Währung?
 
du, sorry... wie genial die lösung auch klingt, das klappt nicht... es kommt zum stacküberlauf (zumindest in der OnChange Prozedur...)
:-(

mojo777 8. Mai 2004 00:10

Re: Wie erstelle ich eine Maske für Währung?
 
ok... ich habs...fast. ist vielleicht nicht so cool wie mit "teile durch 100" aber es ist ok.

Delphi-Quellcode:
procedure TfmHauptfenster.ed_maskeKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var i:Integer;
Text_alt, s:String;
begin
        s:=',';
        Text_alt:=ed_Maske.Text;
        if Length(Text_alt)=2 then
                begin
                i:=Length(Text_alt)-1;
                Insert (s, Text_alt, i);
                //showmessage(Text_alt);
                end;
        ed_Maske.Text:=Text_alt;




end;
gut dass es die funktion insert gibt... hab sie nicht sofort entdeckt und versucht das mit arrays fertigzufummeln... ist echt ne komische angelegenheit. :gruebel:

wenn ihr die prozedur da oben testen werdet(oder eigentlich sollte schon ein einfaches durchlesen reichen..), werdet ihr feststellen, dass sie immernoch ziemlich schief und krumm ist... und zwar: nach dem modifizieren springt der zeiger vor das komma... und überhaupt.. die eingabe der zahlen ist auch ganz verkehrt......
so. gehe jetzt pennen.. vielleicht meldet sich ja noch wer bis morgen nachmittag ;-)

mojo777 10. Mai 2004 00:36

Re: Wie erstelle ich eine Maske für Währung?
 
Liste der Anhänge anzeigen (Anzahl: 1)
:party:

hier ist die lösung...
falls man preisangaben mal so haben möchte, wie eine stinknormale kasse die sanbietet dann kann man keine Maske oder so gebrauchen.

hier ist der code:

Delphi-Quellcode:
unit kasseneingabe;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Text, Ausgabe_str: String;

implementation

{$R *.dfm}



procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var  s:String;
i,d:Integer;
begin
if Length(Edit1.Text)=0 then begin Text:=''; Ausgabe_str:=''; end;
if (Key in ['0'..'9']) then
        begin
        Text:=Text+Key;
        Ausgabe_str:=Text;
        for d:=1 to 3-Length(Text) do
        begin
        Ausgabe_str:='0'+Ausgabe_str;
        end;
        s:=',';
        i:=Length(Ausgabe_str)-1;
        Insert (s, Ausgabe_str, i);
        Edit1.Text:=Ausgabe_str;
        Edit1.SelStart := Length(Edit1.Text);
        Key:=#0;

        end else if (Key in[#8]) then
                begin
                Text:='';
                Edit1.Text:='';
                Ausgabe_str:='';
                end;



end;



procedure TForm1.Edit1Click(Sender: TObject);
begin
Edit1.SelStart := Length(Edit1.Text);
end;

end.
:dance:

yankee 10. Mai 2004 05:27

Re: Wie erstelle ich eine Maske für Währung?
 
Ansonsten kann ich die JVCL-Komponenten mal wieder emphelen. Da gibt es unter der Registerkarte "Jv Convert" ein Edit Feld, in das man nur Daten (von Datum!) eingeben kann...

mojo777 10. Mai 2004 09:37

Re: Wie erstelle ich eine Maske für Währung?
 
guttah.
werd ich mich mal drüber informieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr.
Seite 1 von 2  1 2      

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