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