Главное. Каждый щелчок по нашей кнопке срабатывал дважды. Click вызывает сама LCL при отпускании внутри кнопки — TControl.WMLButtonUp, с той же проверкой «внутри», какую я написал руками в MouseUp. Мой вызов оказывался вторым. На кнопке-переключателе это значит «ничего не произошло»: первое срабатывание меняло состояние, второе возвращало обратно. Свой вызов убран. Найдено на невидимом экране: на один щелчок мышью в журнал легли две записи об одном обработчике, тогда как то же действие с клавиатуры давало одну. После правки три щелчка дают три переключения, а магнит послушно меняет цвет туда и обратно. Второе. Журнал, спрятанный до первого показа окна, не получал своего виджета вовсе, и вернуть его было нечем: свойство переключалось, а на экране ничего не менялось. Теперь состояние применяется на показе окна, когда дескриптор уже есть. Третье. Правка файла формы не сработала молча — строка не совпала, а я это не проверил. Кнопка прилипания осталась широкой, с надписью, и наехала на соседние. Исправлено. Заодно выяснилось, что файл формы пересобирается только вместе со своим модулем: правки одного лишь lfm в двоичный файл не попадают. Значок прилипания переделан в подкову магнита: линия со стрелками смысла не передавала. Переключение журнала добавлено в меню «Вид» и на Ctrl+L.
8 lines
548 B
XML
8 lines
548 B
XML