fix(slices): красная полоса фильтра при TX — у передающего слайса, не у главного

- MainForm: TXOverlay главной вьюхи взводился по FTransmitting без учёта
  источника TX → красной становилась полоса главного VFO даже при передаче
  со слайса. Теперь TXOverlay = FTransmitting and (FTxSliceId = 0).
- VfoOverlay: публичный TxActive (FTx) — вьюхи знают, какой слайс передаёт.
- SpectrumView/SpectrumViewOpengl: полоса/края/несущая передающего слайса
  красные (alpha 100, как у главного при TX), иначе цвет бейджа слайса.
- Фикс цвета TX-полосы в GL: $00E03030 при ColorToRGB (младший байт = R)
  давал синий вместо красного; общая константа CLR_TX_BAND = $003030E0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 18:48:30 +03:00
co-authored by Claude Opus 4.8
parent 2474821739
commit a2e403af3d
4 changed files with 28 additions and 8 deletions
+4 -1
View File
@@ -1350,7 +1350,10 @@ begin
// DUP: данные от RX-анализатора (TXMode=False), TX-полоса рисуется
// поверх через TXOverlay. Без DUP при TX оба флага True.
FSpecView.TXMode := FController.FTransmitting and not FController.FDisplayDuplex;
FSpecView.TXOverlay := FController.FTransmitting;
// Красная полоса главного VFO — только когда передаём с него: при
// TX со слайса краснеет полоса ТОГО слайса (DrawSliceFilterMarkers).
FSpecView.TXOverlay := FController.FTransmitting and
(FController.FTxSliceId = 0);
ApplySpecViewGridFromState; // сетка спектра под активный тракт
RefreshTxIndicators; // TX-бейджи флагов (какой слайс передаёт)
end; // (DUC-очередь сбрасывает SetMOX)