Страница 7 из 9

Добавлено: Ср дек 10, 2014 09:26
Flasher
Да я видел, но он же глючит.

ask-rus
Кстати, замени run_item(tb1) на tcm(2901) (я в своём примере поправил), так будет лучше.

Добавлено: Ср дек 10, 2014 09:35
sa
Flasher писал(а):он же глючит
Не глючит.

Из справки по TCFS2:
дополнительно записывает в wincmd.ini значение ButtonBar=1 (ТК не делает этого при вызове команды OPENBAR).

Добавлено: Ср дек 10, 2014 09:47
Flasher
В общем-то, да, макрос тут, наверно, ни при чём. Но тогда есть смысл отказаться использовать tb0/tb1 при таком раскладе, если MVV не дополнит Tools проверкой активности панелей через отправку сообщений. Хотя, возможно, разговор об этом уже вёлся, не помню.

Добавлено: Ср дек 10, 2014 10:10
sa
Flasher писал(а):есть смысл отказаться использовать tb0/tb1
А можно и не отказываться, если дополнительно записывать в wincmd.ini значение ButtonBar=1 при использовании OPENBAR.

Добавлено: Ср дек 10, 2014 10:14
MVV
Ага, снова всё упёрлось в RTFM. :D
Наконец разобрались, где собака порылась. Я на днях пытался повторить проблему, видел, что что-то не так в конфиге после этих команд, но некогда было разбираться. Что могу сказать, используете OPENBAR - записывайте 1, это несложно, или да, вызывайте tcm(2901) напрямую. А искать окно класса Window среди кучи окон класса Window я точно не стану. Если бы идентификаторы окон были статическими, это было бы просто, но дельфийская VCL генерирует их от фонаря.

В макросе hasButtonBar (и ему подобным) в качестве error_value используется значение ключа по умолчанию: при отсутствии ключа тотал считает, что панель инструментов включена.

Добавлено: Ср дек 10, 2014 10:15
Flasher
2sa
Смысл писать в ini по два раза? По сути указанные команды нужны только в связке с другими переключателями для фуллскринов и т.п. А отдельно их вызов бессмысленен.
MVV писал(а):при отсутствии ключа тотал считает, что панель инструментов включена
И это касается только ButtonBar? А остальные ключи?

Добавлено: Ср дек 10, 2014 10:21
MVV
Повторяю, везде, где используется error_value, оно содержит значения ключей по умолчанию (частично они взяты из справки, частично опытным путём). Если заметите, что где-то используется неправильное error_value, я исправлю, но это не тот случай.

Кстати, можно и от tb1 не отказываться, достаточно просто вызывать её перед каждым вызовом OPENBAR.

Добавлено: Ср дек 10, 2014 10:23
sa
MVV писал(а):Ага, снова всё упёрлось в RTFM
Нее…. Сначала нашёл опытным путём и лишь спустя несколько дней в справке. :)

Добавлено: Ср дек 10, 2014 10:25
MVV
Если это написано в справке, значит, это кому-то нужно. :)
Хотя, конечно, чем больше тонкостей там описано, тем легче что-то забыть.

Для интереса проверьте вот что, не надо даже TCFS2: скройте тулбар, потом вызовите OPENBAR с любой панелью и перезапустите тотал. Панели не будет, т.к. в конфиге она осталась выключенной. Поэтому лучше всегда записывать 1 в конфиг ручками или вызывать tb1 перед каждой OPENBAR.

Добавлено: Ср дек 10, 2014 10:30
sa
MVV писал(а):ли вызывать tb1 перед каждой OPENBAR.
Не хочется лишний раз передёргивать экран.

Добавлено: Ср дек 10, 2014 10:32
Flasher
MVV писал(а):Кстати, можно и от tb1 не отказываться, достаточно просто вызывать её перед каждым вызовом OPENBAR.
И будет глюк с переключением с одной панели на другую.
MVV писал(а):Для интереса проверьте вот что
Я это и раньше проверял. Ничего подобного. Панель появляется без проблем.

Добавлено: Ср дек 10, 2014 10:38
sa
Flasher писал(а):Панель появляется без проблем.
Небось tcm(2901) "сидит" в твоём run?

Добавлено: Ср дек 10, 2014 10:42
Flasher
В const_bb, если быть точным. Но она появится только в нужном случае. Самой то панели после перезапуска нет. Мы обсуждаем её появления после вызова OPENBAR. При чём тут Autorun?
MVV писал(а):А искать окно класса Window среди кучи окон класса Window я точно не стану.
Так ты будешь искать только передние окна. В чём сложность? Да и по скорости наверняка побыстрей будет, чем читка в ini.

Добавлено: Ср дек 10, 2014 10:53
sa
Flasher писал(а):Да и по скорости наверняка побыстрей будет, чем читка в ini
Какая там читка? Всё небось из буфера берётся после предшествующей правки имени панели в том же файле.
Кстати, пробел после %Z советуешь убрать тоже для скорости?

Добавлено: Ср дек 10, 2014 11:10
Flasher
sa писал(а):Какая там читка?
Такая.
sa писал(а):Всё небось из буфера берётся после предшествующей правки имени панели в том же файле.
Ты о чём вообще? На has-макросы посмотри внимательно.
sa писал(а):Кстати, пробел после %Z советуешь убрать тоже для скорости?
А ты сильно нуждаешься в моём совете в этом вопросе? :D