Einzelnen Beitrag anzeigen

knightfire66

Registriert seit: 7. Nov 2013
Ort: Stuttgart
3 Beiträge
 
Delphi 7 Personal
 
#1

Hilfe: Delphi Taschrechner

  Alt 23. Nov 2013, 14:45
Hallo
ich erstelle zum ersten mal ein neues Thema, also bitte nicht sauer sein, wenn etwas falsch ist

ich habe lange im Internet gesucht und auch im Forum aber keine Antwort auf mein Problem gefunden.

ich programmiere zurzeit ein Taschenrechner für mein Informatikunterricht (die Note zählt fast wie ne ganze Klasur).

Ich benutze Delphi7 und haben folgendes Problem:

Ich versuche seit Tagen hinzubekommen, dass ich nur ein Komma in meinem Edit Feld haben kann und das dann nur, wenn mein Editfeld leer ist (zumindestens >0 ist). Also das soll folgendes verhinden.

,00,,5 + ,5,0 .... wenn das so aussieht geht das ja nicht das sollte so aussehen:

0,5 + 5,0 DD

Einige Quelltexte habe ich schon gefunden, aber die lösen nicht mein Problem

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', ',', #8])then
    Key := #0;
if (key = ',') and (pos(',',(sender as TEdit).text) >0) then
    key := #0;
end;
Dies geht halt nur, dass man nur 1 Komma macht aber ich kann nicht dafür sorgen , dass man erst ein Komma setzen kann, wenn davor zunächst auch eine Zahl steht.

folgendes habe ich auch getestet funktioniert aber auch
nicht...

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', ',', #8])and (Length(Edit1.Text) < 1)then
    Key := #0;
if (key = ',') and (pos(',',(sender as TEdit).text) >0) then
    key := #0;
end;
Und dies alles soll aber auch mit einem, im Program integriertem KommaButton (',') funktionieren...aber bin mit dem Button erst soweit gekommen:

Delphi-Quellcode:
procedure TForm1.ButtonKomClick(Sender: TObject);
begin
If not (Edit1.Text= '') then
Edit1.Text:= Edit1.Text+',';
end;
Danke im Vorraus
  Mit Zitat antworten Zitat