TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Добавить нечего, всё действительно много раз обсуждалось в теме, описано в Readme и для сокрытия каждого стандартного элемента окна ТК уже есть готовые команды в TCFS2.ini.
Последний раз редактировалось MVV Ср янв 18, 2012 10:58, всего редактировалось 1 раз.
Возник вопрос по использованию функции tem(<em_command_name>).
Например, в кнопкеприменяется пользовательская команда em_SrcByName следующего вида
У меня при вызове кнопки с правой панели проскакивает периодически команда изменения сортировки для этой же панели, а не для пассивной (левой), как ожидалось. Лечить можно введением задержки после tem(em_SrcByName). Но можно ли обойтись без такого лечения и воспроизводится ли вообще у кого-нибудь такая ситуация?
PS
C утилитой TCMC такой проблемы не замечаю.
Например, в кнопке
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef tcm(4001) tcm(540) tem(em_SrcByName) tcm(4002)
WCMICONS.DLL,5
Пассивная (левая) панель: Сортировать по имени
-1Код: Выделить всё
[em_SrcByName]
button=wcmicons.dll,5
cmd=cm_SrcByName
PS
C утилитой TCMC такой проблемы не замечаю.
Это просто пример для воспроизведения проблемной ситуации.Flasher писал(а):Это не ответ.
Последний раз редактировалось sa Вт янв 24, 2012 21:28, всего редактировалось 1 раз.
Следует помнить, что официально тотал не поддерживает обработку последовательности команд с такой быстрой их подачей, и что только Гислеру известно, как именно тотал обрабатывает такую последовательность (да, по логике окно тотала должно обрабатывать сообщения последовательно, но кто знает, как оно на самом деле). Поэтому следует использовать задержку там, где без неё не работает, а с ней - работает.
Из справки Хелпера:
Wait глобальное свойство, которое определяет, будут ли для
отсылки команд Тоталу использоваться функции PostMessage (по
умолчанию, Wait=False) или SendMessage (при установке значения
True). При истинном значении этого свойства всегда ожидается
реакция TC на посланную команду и только при получении результата
передается управление в скрипт. Это значит, что, вызвав некоторый
диалог TC при Wait=True, вы приостановите работу скрипта до того
момента, пока пользователь не внесет некоторые данные и сам не
закроет этот диалог. При Wait=False возможно _программное_
внесение данных в такое диалоговое окно последующими командами
скрипта и, соответсвенно, потребуется его программное закрытие. В
целом же для иных случаев использование установки Wait=True
должно по идее должно улучшить "надежность" выполнения команд,
посылаемых TC (тут надо еще поэкспериментировать).
SendCommand (строка с именем команды или ее номер[,Wait])
посылает стандартную команду окну TC. Обращение по именам
возможно только при загруженном файле INC (обычно загрузка
происходит автоматически при инициализации Helper-а). C помощью
необязательного параметра Wait можно переопределить параметр
ожидания (действует только для данной конкретной команды!).
Стандартных команд в TCFS2 не так и много, можно написать (и вызывать) их аналоги, например:
Второй необязательный параметр может принимать значение задержки после вызова команды:
А для всех команд с непустым условием отката задержка есть и так.
Кстати, к сведению, tcm использует SendMessage.
Проверьте, будут ли глюки, если использовать msg($433, x, 0, 1) (послать внутреннюю команду через PostMessage) вместо tcm(x).
Код: Выделить всё
tcmd=eval(tcm(#1) + if(null(#2), 0, delay(#2)))Код: Выделить всё
TCFS2.exe /ei tcmd(304) tcmd(304,1000) tcmd(304,1000) tcmd(304,1000)А для всех команд с непустым условием отката задержка есть и так.
Кстати, к сведению, tcm использует SendMessage.
Проверьте, будут ли глюки, если использовать msg($433, x, 0, 1) (послать внутреннюю команду через PostMessage) вместо tcm(x).