Einzelnen Beitrag anzeigen

bmg4ever

Registriert seit: 16. Sep 2004
12 Beiträge
 
#7

Re: Zahleneingabe erzwingen

  Alt 20. Okt 2004, 11:05
Zitat von ibp:
Code:
if zahl im bereich dann weiter sonst neue eingabe
hmmm.... läuft nicht

also ich hab das mal für nene taschenrechner so gemacht

Delphi-Quellcode:
const real = ['0'..'9',',','.'];
begin
        i:=0;

        Rechenfeld.PasteFromClipboard;
        RechenfeldText := Rechenfeld.Text;
        Rechenfeld.Text := '';
        while i <= length(RechenfeldText) do
        begin
        while not (RechenfeldText[i] in real) do inc(i);
                if RechenfeldText[i] = '.then RechenfeldText[i] := ',';
        Rechenfeld.Text := Rechenfeld.Text + RechenfeldText[i];
        inc(i);
        end;
        
end;
Rechenfeld ist ein EDitfeld und Rechenfeldtext(ohne punkt) eine string variable(ich weiß, dass dieser name die lesbarkeit erschwert)
das editfeld kann bei mir nicht frei editiert werden (nur über buttons), aber es ging darum auch einfügen aus der zwischenablage zu ermöglichen. das dingen da oben filtert halt alle zahlen aus einem string raus
du brauchst dann nach einem system dieser art den string nur noch in einen integer oder float oder so wert umzuwandeln und dann überprüfst du einfach, ob der wert deine grenzen über- oder unterschreitet und setzt ihn dann automatisch auf den grenzwert oder gibts dem user eine fehlermeldung raus

[EDIT] mir fällt grad auf, dass man für die umschließende while schleife auch locker ne for-schleife nehmen und mit continue arbeiten kann bzw vielleicht wäre das sogar besser.[/EDIT]
  Mit Zitat antworten Zitat