Universal Viewer - аналог Lister

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Athari
Сообщения: 81
Зарегистрирован: Сб дек 18, 2004 23:37
Откуда: Казань
Контактная информация:

Сообщение Athari »

Если скрывать меню так, то перестают работать гор. клавиши
(заданные в этом меню).
Обоими способами пробовал? Хм. Не ожидал, что VCL отследит SetMenu…

Ты без TActionList делаешь? Если с ним, то и удобнее будет, и клавиши всегда работать будут. Теоретически. :)
Но так просто этот вызов не сделаешь, у меня же TImage, его надо полностью переписывать?
Можно процедуру Paint попытаться переопределить… Extctrls.pas в сорцах VCL посмотри, там всего пара строк.
Я же загружаю картинки как TImage.Picture.LoadFromFile(),
а оно требует, чтобы расширение соответствовало, там нет опр. по содержимому.
Там у тебя не так много типов поддерживается, так что вручную голову файла смотреть, по-моему, труда не составит. У BMP первые два байта «BM», у GIF — «GIF», у JPEG — 0xFFD8FFE0 (плюс ещё какие-то, кажется…) ну и так далее. Можно конкретными наследниками TGraphic пользоваться, а потом Assign’ить в TImage->Picture. Способ найти можно.
А как я узнаю, что в шрифте есть символы от 1 до 31?
Листер себя не утруждает проверкой и полностью полагается на API… Но есть минус — получаются квадратики, а не точки, что не всегда удобно.

Ну, опцию можно ввести, чтобы пользователь задавал, какие символы на точки менять.

А как узнать… Посмотри в направлении TEXTMETRIC, там что-то похожее есть.
Что с ними делать?
Сам решай. :)
Потому, что писать свою реализацию просмотра UTF8 было очень лень.
Это ОЧЕНЬ МНОГО возни.
Где там возня? Тот же самый текстовый, только перед выводом преобразование кодировки. Самая большая неприятность — если в начале отображаемого куска файла середина символа будет, но в случае с UTF8 это не так важно — на ближайшем правильном символе «восстановится». Или я чего-то не понимаю?
А это происходит только с BMP?
Да.
А почему? Чем BMP такой особенный? :)
Если через OnKeyDown, то наверное они работать не будут. А если как-то хитро, как FileInfo плагин, то они перекроют мои гор. клавиши. А если у тебя ActiveX, то тоже возможно перекроет мои клавиши...
KeyDown. Так как сделать, чтобы работали?

FileInfo как делает?
«Today is the first day of the rest of your life»
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Athari
Если скрывать меню так, то перестают работать гор. клавиши
(заданные в этом меню).
Обоими способами пробовал?
Пока первым, сделал скрытие через Form.Menu:= nil; после этого все клавиши перестали работать.
Ты без TActionList делаешь? Если с ним, то и удобнее будет, и клавиши всегда работать будут. Теоретически.
Да, просто TMainMenu, клавиши в TMenuItem.Shortcut.
Переходить на TActionList только из-за того, что меню будет проще скрывать - не стОит...
Можно процедуру Paint попытаться переопределить… Extctrls.pas в сорцах VCL посмотри, там всего пара строк.
Попробую, спасибо за подсказку! Может, и правда так все просто.
Там у тебя не так много типов поддерживается, так что вручную голову файла смотреть, по-моему, труда не составит.
Нет, как раз составит, там у меня полно типов. Пока если нужно смотреть переименованные картинки - Imagine /SGViewer...
Ну, опцию можно ввести, чтобы пользователь задавал, какие символы на точки менять.
А как узнать… Посмотри в направлении TEXTMETRIC, там что-то похожее есть.
Посмотрю. Если будет способ определить, какие символы "есть" - буду их выводить.
Потому, что писать свою реализацию просмотра UTF8 было очень лень.
Это ОЧЕНЬ МНОГО возни.
Где там возня? Тот же самый текстовый, только перед выводом преобразование кодировки. Самая большая неприятность — если в начале отображаемого куска файла середина символа будет, но в случае с UTF8 это не так важно — на ближайшем правильном символе «восстановится». Или я чего-то не понимаю?
Не понимаешь. :)
Трудностей реализации. То, что можем попасть в середину символа и надо перейти на начало следующего - это ерунда. Но переходы по символам делать вперед-назад уже сложнее, чем в Юникоде. Очень много переписывать из-за этого.
А это происходит только с BMP? Да.
А почему?
Не знаю
KeyDown. Так как сделать, чтобы работали?
FileInfo как делает?
Не знаю. :)
Горячие клавиши (их работа в режимах Плагины /Интернет) - это мое слабое место. То не работают (как у тебя), то как в FileInfo.
Аватара пользователя
Athari
Сообщения: 81
Зарегистрирован: Сб дек 18, 2004 23:37
Откуда: Казань
Контактная информация:

Сообщение Athari »

Переходить на TActionList только из-за того, что меню будет проще скрывать - не стОит...
Не только. Ещё чтобы контролы с одним назначением каждый индивидуально не обрабатывать. Вот у тебя пункты меню и кнопки на панели инструментов как сопоставлены?
Не знаю. :)
Ну, как вариант, можешь WM_KEYDOWN от своей формы на окно плагина перенаправлять. Когда я BootScreenView «окультурю», работать должно. ;)
«Today is the first day of the rest of your life»
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Athari
Не только. Ещё чтобы контролы с одним назначением каждый индивидуально не обрабатывать.
У меня там своя реализция TActionList. :)
Ну, как вариант, можешь WM_KEYDOWN от своей формы на окно плагина перенаправлять.
А в твоем плаге клавиши работают. Z - работает всегда, I не работает т.к. переопределен у меня, стрелки при большом скрине почти работают (работает только стрелка вверх).
Аватара пользователя
Athari
Сообщения: 81
Зарегистрирован: Сб дек 18, 2004 23:37
Откуда: Казань
Контактная информация:

Сообщение Athari »

Z - работает всегда, I не работает т.к. переопределен у меня, стрелки при большом скрине иногда работают (работает только стрелка вверх).
Хм… У меня ни под каким соусом работать не хотят… :?
«Today is the first day of the rest of your life»
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Athari
Потому что у тебя не последний билд UV - я там поправлял работу стрелок в плагинах...
Версия Free обновлена на сайте, а Pro еще нет...
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Версия 2.6.0.
Аватара пользователя
sergeich
Сообщения: 185
Зарегистрирован: Вт апр 25, 2006 22:36
Откуда: Москва

Сообщение sergeich »

Спасибо за новую версию. Жаль только, что программа открывается все медленнее и медленнее.. :-(
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Вообще-то я кое-что оптимизировал (пара dll теперь грузится по мере необходимости)... я не замечаю того, что программа грузится медленнее...
Аватара пользователя
DimmY
Сообщения: 45
Зарегистрирован: Чт июл 12, 2007 23:55

Сообщение DimmY »

Кажется, обнаружил ошибку, проявляющуюся при просмотре PHP-файлов. Подробности отправил по мылу на support.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

DimmY
Подтверждаю. Но "ошибка" редкая, повт. только при выполнении специфических javascript-ов...
test1024
Сообщения: 76
Зарегистрирован: Чт ноя 09, 2006 17:12

Сообщение test1024 »

sergeich писал(а):Спасибо за новую версию. Жаль только, что программа открывается все медленнее и медленнее.. :-(
Конечно, ведь автор сжал её какой-то дрянью, видимо ASProtect.
Любая сжатая программа грузится медленнее, чем несжатая.
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Конечно, ведь автор сжал её какой-то дрянью, видимо ASProtect.
Любая сжатая программа грузится медленнее, чем несжатая.
Пришлось сжать, но это только Pro-версию.

Я тут подумываю, не выпустить ли Light-версию, в которой не будет Юникода, тулбара, языковых файлов и т.д. Она бы грузилась мгновенно. Но Юникод отрывать как-то не очень хочется.
Последний раз редактировалось Alextp Вс окт 28, 2007 17:12, всего редактировалось 1 раз.
Аватара пользователя
sergeich
Сообщения: 185
Зарегистрирован: Вт апр 25, 2006 22:36
Откуда: Москва

Сообщение sergeich »

Я тут подумываю, не выпустить ли Light-версию, в которой не будет Юникода, тулбара, языковых файлов и т.д. Она бы грузилась мгновенно. Но Юникод отрывать как-то не очень хочется.
Отличная идея, можно попробовать отключить функции, которые особенно тормозят программу. Но тулбар, мне кажется, лучше оставить..
Аватара пользователя
Alextp
Сообщения: 4957
Зарегистрирован: Вс фев 06, 2005 17:21

Сообщение Alextp »

Отключил Tnt Unicode Lib, совсем для другого, правда (надо было локализовать один Access Violation): а оказалось, что вьюер стал загружаться быстрее.

Выкладываю "ANSI build":
http://atorg.net.ru/temp/beta/Universal ... e.ANSI.zip
Ответить