Hi, vielleicht hilft dir das weiter:
Ich benutze diese Prozeduren, die ich mal geschrieben habe,l jetzt so gut wie in jedem Programm.
Delphi-Quellcode:
{-----------------------------------------------------------------------------
Description: Löscht Zeichen die da nicht reinpassen
Procedure: korrigiere
Arguments: var s:String; const zeichen:Tsetofchar
Result: None
Detailed description:
-----------------------------------------------------------------------------}
procedure korrigiere(var s:String; const zeichen:Tsetofchar=['0'..'9','-',',']);
var c : word;
begin
c:=1;
while c<= length(s) do
begin
if not(s[c] in zeichen) then
delete(s,c,1)
else
inc(c);
end;
end;
{-----------------------------------------------------------------------------
Description: Direkt edite Korrigieren
Arguments: var edit:Tedit; const zeichen:Tsetofchar=['0'..'9','-',',']
-----------------------------------------------------------------------------}
procedure korrigiere(var edit:Tedit; const zeichen:Tsetofchar=['0'..'9','-',',']);
var s:string;
begin
s:=edit.Text ;
korrigiere(s,zeichen);
edit.Text:=s;
end;
{-----------------------------------------------------------------------------
Description: Korrigiere real Zahl
Arguments: var r:real; max,min:real
-----------------------------------------------------------------------------}
procedure korrigiere(var r:real; min,max:real);
var temp:integer;
begin
if max<min then
begin
temp:=min;
min:=max;
max:=temp;
end;
if r<min then r:=min;
if r>max then r:=max;
end;
{-----------------------------------------------------------------------------
Description: Korrigiere Word Zahl
Arguments: var r:word; max,min:word
-----------------------------------------------------------------------------}
procedure korrigiere(var w:word; min,max:word);
var temp:integer;
begin
if max<min then
begin
temp:=min;
min:=max;
max:=temp;
end;
if w<min then w:=min;
if w>max then w:=max;
end;
{-----------------------------------------------------------------------------
Description: Korrigiere Integer Zahl
Arguments: var r:word; max,min:Integer
-----------------------------------------------------------------------------}
procedure korrigiere(var w:integer; min,max:integer);
var temp:integer;
begin
if max<min then
begin
temp:=min;
min:=max;
max:=temp;
end;
if w<min then w:=min;
if w>max then w:=max;
end;
//Edit: Kleine Korrektur des Codes