Вот пример того что получилось, двухсторонний конвертер морзянки, правда тупо говнокодом, одними ифками, т.к. на использование массивов и др. хороших вещей времени не нашлось. Проверил, работает.
Добавлено позже:
А насчёт пробелов при воспроизведении можно и правда так
Загонять буквы через пробелы и затем
Код:
s:= StringReplace(строка с кодом Морзе, ' ', '_', [rfReplaceAll]);
for i := 1 to length(s) do if s[i] <> '_' then проиграть(s[i]);
...
и пауз так не будет точно.