Byl jsi blízko. Jen ti chybělo ve vstupním parametru pro
StringReplace uzavřít závorku a přistoupit k hodnotě. Chyba povídající o více parametrech byla způsobena tím, že se v parametru funkce
FieldByName očekává parametr jeden, a to název sloupce; no a tím, že jsi závorku neuzavřel, považoval všechno co následuje parser kompilátoru za další parametry.
Zkus tohle:
procedure TForm1.ZTable1CalcFields(DataSet: TDataSet);
begin
ZTable1.FieldByName('datum_prevod').AsString :=
StringReplace(ZTable1.FieldByName('datum_expirace').AsString, '-', '', [rfReplaceAll]);
end;
P.S. tohle je spíš otázka pro Delphi fórum než MySQL...