Страница 25 из 88

Добавлено: Ср май 04, 2011 15:37
sa
Flasher писал(а):Мелькание появляется
По счастью у меня ничего не мелькает. Даже с TCS.Pause = 70 (по умолчанию). :)

Добавлено: Ср май 04, 2011 16:09
Flasher
sa
А ты автообновление и TwinKey используешь?

Добавлено: Ср май 04, 2011 16:16
sa
Flasher писал(а):А ты автообновление и TwinKey используешь?
Я много чего ещё (помимо них) не использую.

Добавлено: Ср май 04, 2011 16:17
Flasher
sa
Тогда ясно...

Добавлено: Чт май 05, 2011 13:47
MVV
VadiMGP писал(а):
MVV писал(а): надо будет проверить это всё.
Еще может оказаться что нулевого элемента вообще нету, пустая флешка, например. :)
В общем, поделись результатом проверок, пожалуйста. TWinKey, конечно, более-менее нормально определяет текущий режим, но если будет хорошая идея как это сделать надежнее буду только рад.
Что-то пока я вижу только то, что единственным 100%-надежным средством различия режимов является наличие стиля LBS_MULTICOLUMN. По нему можно понять, краткий ли режим. Все остальные режимы различить при пустой панели (корень пустого диска) никак не получится, если использовать только документированные средства. Да и при непустой далеко не все и не всегда - насколько я заметил, строки списка и в полном и в режиме эскизов хранят абсолютно одинаковую информацию. Разве что дерево можно определять по двум слэшам в начале первого элемента (не могу придумать, могут ли они там быть в какой-либо ещё ситуации).

Добавлено: Чт май 05, 2011 14:37
VadiMGP
MVV писал(а):Все остальные режимы различить при пустой панели (корень пустого диска) никак не получится,
Согласен. По счастью в совершенно пустой панели мне ничего не надо делать, поэтому не страшно.
MVV писал(а):Да и при непустой далеко не все и не всегда
Ну так и я про то же.
MVV писал(а): строки списка и в полном и в режиме эскизов хранят абсолютно одинаковую информацию.
Я долго мучил репу, потом плюнул и сейчас волюнтаристски определяю эскизы по высоте элемента листбокса(если он >= 48 пикселей)
MVV писал(а):Разве что дерево можно определять по двум слэшам в начале первого элемента (не могу придумать, могут ли они там быть в какой-либо ещё ситуации)
Во-первых, мне еще попадался вариант не два слэша, а ".\." А два одиноких слеша я побоялся использовать как индикатор, уж слишком выглядит неоднозначно. Я проверяю на "\"+GetNameOfCSIDL(CSIDL_DESKTOP,...)

Добавлено: Чт май 05, 2011 14:54
MVV
Насчет высоты элементов - да, хорошая мысль. Но тогда лучше взять из конфига размер значка - он совпадает с высотой нормальной строки. Далее, по идее, высота строки в режиме эскизов может быть и меньше этой величины (ставлю, например, значки 128х128 - знаю, звучит глупо, но тотал позволяет). Выходит, в режиме эскизов высота просто не будет совпадать с этим числом (не будем рассматривать тот шизофренический случай, когда они вдруг случайно совпадут - нормальные люди не используют значки такой величины). Жаль, сложно получить это значение из конфига (имя раздела в большинстве случаев зависит от режима экрана и других параметров).
Во-первых, мне еще попадался вариант не два слэша, а ".\."
В дереве такое попадалось? Или в другом режиме? Дерево, по идее, всегда имеет десктоп в корне. А вот есть ли другие папки, чтобы первым элементом был элемент с 2 слэшами в начале - вопрос.

Добавлено: Чт май 05, 2011 20:20
VadiMGP
MVV писал(а): Но тогда лучше взять из конфига размер значка
В теории, наверное, лучше, но на практике слишком большие заморочки. Добавь еще к этому то, что резолюция монитора в любую минуту может поменяться и вообще могут быть несколько ТС с разными конфигами.
Потому-то я плюнул и взял за минимум для эскизов 48 пикселей. Кто ставит эскизы меньшего размера (или для текста фонт большего) - ничем не могу помочь.
MVV писал(а):В дереве такое попадалось?
Именно в дереве. Возможно, что это было в предыдущих версиях ТС, а сейчас уже нет, не знаю. Я как обнаружил пару лет назад такое, добавил в проверки и больше не трогал.
MVV писал(а):А вот есть ли другие папки, чтобы первым элементом был элемент с 2 слэшами в начале - вопрос
Вопрос хороший, ответа нету. Потому я и взял полностью строку, включая имя десктопа, от греха подальше.

Добавлено: Вс май 08, 2011 21:26
Flasher
sa писал(а):К тому же, если случайно перейти в другой режим не по этой команде, а иным способом, то тоже возникают накладки.
А посему – скрипт пока универсальнее.
С новой версией TCFS2 этих проблем нет, поэтому скрипт отпадает.

Код: Выделить всё

modeL=tcm(301), tcm(65553) | tcm(302)
modeR=tcm(301), tcm(65554) | tcm(302)
swmode=run_item(modeL), tcm(65551) | run_item(modeR); Переключается между подробным и кратким режимом

Добавлено: Пн май 09, 2011 00:35
sa
Flasher
С новой версией TCFS2 по-моему можно ограничиться одной строчкой вместо трёх

Код: Выделить всё

swmode=tcm(301), test(S_viewMode > 0) | tcm(302)  ; Переключаться между подробным и кратким режимом
Однако без скрипта по-прежнему не выполняется одно из условий исходной задачи:
ask-rus писал(а):Если мы находимся в режиме, например, "Просмотр эскизов", нажатие на кнопку переведет панель в "Подробный"
Скрипт у меня пока не отпадает, тем более, что он хорошо “держит картинку” (особенно заметно на больших списках).

Добавлено: Пн май 09, 2011 00:41
Flasher
sa писал(а):С новой версией TCFS2 по-моему можно ограничиться одной строчкой вместо трёх
Только сейчас обнаружил S_viewMode, спасибо за подсказку.
sa писал(а):Однако без скрипта по-прежнему не выполняется одно из условий исходной задачи:
Про это условие можно забыть, я уже писал - оно нечитабельно. И скрипт никакого преимущества в этом смысле не даёт.

Добавлено: Пн май 09, 2011 00:50
sa
Flasher писал(а):Про это условие можно забыть,
А можно и не забывать, если пользоваться скриптом.

Добавлено: Пн май 09, 2011 01:00
Flasher
Повторю - ничего скрипт не даст. Он всё время будет возвращаться к одному и тому же режиму, хоть к краткому, хоть к подробному в зависимости от настроек. У меня - к краткому. И вообще не вижу смысла использовать скрипт для возврату к подробному режиму, если проще использовать саму команду cm_SrcThumbs. И потом, если уж говорить об исходности и т.п., то я тоже могу кое-что процитировать:
ask-rus писал(а):Стараюсь избегать TCScript.Helper (портабельность).

Добавлено: Пн май 09, 2011 01:12
sa
Flasher писал(а):Он всё время будет возвращаться к одному и тому же режиму, хоть к краткому, хоть к подробному в зависимости от настроек. У меня - к краткому.
А у меня к подробному, как в задачке. А от каких кстати, настроек это зависит?

Добавлено: Пн май 09, 2011 01:31
Flasher
Вообще-то я не прав - настройки тут ни при чём. Скрипт сам сравнивает строки. Вот только я не могу понять, как у тебя может возникать подробный режим из эскизов, если cm_CopyFileDetailsToClip в режиме Эскизов даёт строку отличную от той, что даёт cm_CopyNamesToClip. :shock: