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]