Kennst du StringReplace?
-> Du nimmst nicht
EdtPreis.Text sondern
StringReplace(EdtPreis.Text, ',', '.')
[Nachtrag]
Wobei ich eigentlich denke, dass das nicht dein Problem ist, da StrToFloat usw. alle mit den aktuellen Locale-Einstellungen arbeiten.
Problem wird sein, dass die Umwandlung für den
SQL-String ein Komma statt eines Punktes erzeugt.