Delphi-Quellcode:
procedure TForm1.EditsKeyPress(Sender: TObject; var Key: Char);
var
Position: Integer;
Stellenpuffer: String;
Zeichenpuffer: String;
Stellenanzahl: Integer;
begin
Komma := False;
Zeichenpuffer := (Sender as TEdit).Text;
if Pos(',', Zeichenpuffer) > 0 then Komma := True;
if (Komma = True) and (Key = #44) then Key := #0;
if (Komma = True) and (Key = #46) then Key := #0;
if (Komma = False) and (Key = #46) then Key := ',';
if (Sender as TEdit).SelStart < Pos(',', (Sender as TEdit).Text) then
else
if Pos(',', Zeichenpuffer) > 0 then
begin
Stellenanzahl := Length(Zeichenpuffer);
Position := Pos(',', Zeichenpuffer);
Stellenpuffer := Copy(Zeichenpuffer, Position+1, Stellenanzahl-Position);
Stellenanzahl := Length(Stellenpuffer);
if Stellenanzahl = 3 then
begin
if (Key in [#44, #46, #48..#57]) then Key := #0
end;
end;
if (Sender as TEdit).SelStart < Pos('-', (Sender as TEdit).Text) then
begin
if (Key in [#48..#57]) then Key := #0;
end;
if Key = #13 then Key := #0;
if not (Key in [#8, #44..#46, #48..#57]) then Key := #0;
if(Sender as TEdit).SelStart = 0 then
begin
if Key = #45 then Key := #45;
end;
if (Sender as TEdit).SelStart > 0 then
begin
if Key = #45 then Key := #0
end;
if Pos('-', (Sender as TEdit).Text) > 0 then
begin
if Key = #45 then Key := #0
end;
end;
Diese Prozedur weist du einfach jedem Edit als OnKeyPress-Ereignis zu - fertig.
Erklärung:
Sender verweist immer auf das Objekt, das die Ereignisprozedur aufgerufen hat - in diesem Fall ein Edit. Nach einer Typumwandlung mit "as TEdit", "as TLabel", etc. kannst du dann auf alle Eigenschaften und Methoden des aufrufenden Objekts zugreifen.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)