From 504265f8ad7023e146350525ef4fefe09ed01c53 Mon Sep 17 00:00:00 2001 From: Uladzimir Karpenka Date: Fri, 14 Aug 2026 12:13:33 +0300 Subject: [PATCH] =?UTF-8?q?fix(cw):=20=D0=B2=20=D1=81=D1=82=D0=B0=D1=82?= =?UTF-8?q?=D1=83=D1=81=D0=B5=20=D1=82=D0=B5=D1=80=D0=BC=D0=B8=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=D0=B0=20=D0=BF=D1=80=D0=BE=D0=BF=D0=B0=D0=B4=D0=B0=D0=BB?= =?UTF-8?q?=D0=B0=20=D1=80=D0=B0=D1=81=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=82=D0=BE=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Format(', tone %+d Hz', ...) печатал ', tone d Hz' — без значения. Флага '+' в Format Object Pascal нет, синтаксис здесь %[индекс:][-][ширина][.точность]тип; встретив '%+', FPC съедает процент с плюсом и копирует остаток спецификатора как обычный текст. Знак ставим руками, отрицательные %d печатает со своим минусом сам. Найдено попутно — тот же промах был в новом коде лупы маяка. Сборка ewsdr (--ws=qt6) — ОК. Co-Authored-By: Claude Opus 5 --- MainForm.pas | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/MainForm.pas b/MainForm.pas index 8bd1538..5199b73 100644 --- a/MainForm.pas +++ b/MainForm.pas @@ -8280,7 +8280,11 @@ begin begin St := Format('RX %d WPM', [FController.CWDecSpeedWPM]); if FController.CWDecToneOffsetHz <> 0 then - St := St + Format(', tone %+d Hz', [FController.CWDecToneOffsetHz]); + // Знак руками: флага '+' в Format Object Pascal нет, '%+d' съедается + // молча и в строку попадает голая 'd'. + St := St + Format(', tone %s%d Hz', + [IfThen(FController.CWDecToneOffsetHz > 0, '+', ''), + FController.CWDecToneOffsetHz]); if not FController.CWDecSignal then St := St + ', no signal'; end else