Зато его можно указать в конструкторе.
Нет. Исходная string в версиях от 2009 и выше - это UnicodeString. В большинстве случаев можно считать как WideString или UCS-2. Кодировка по 2 байта на символ. ANSI - это 1 байт на символ.
Действительно, получившийся у Вас код не есть супер-красив. Я продолжаю считать, что всего навсего явное указание Encoding для StringStream снимет эти проблемы. Всякие остальные преобразования, включая явные упоминания конкретных TEncoding и функций перекодировки не нужны.
Регулировка звука теперь ошибается на 1%, иногда показывает правильное значение. Ещё заметил, что можно в большой минус уйти
Если регулировать звук через систему, то значение в приложении не меняется, т.е. в системе выставил 20, а в приложении так и осталось 56.
У Вас перепутаны строки и столбцы. Нужно или так:
for i := 0 to n-1 do
for j := 0 to m-1 do
Или же так:
SG.Cells[i,j]:=inttostr(ImMas[i,j]);
TStringGrid: property Cells[const ACol, ARow: Integer]
TestSGDraw.zip