View previous topic :: View next topic |
Author |
Message |
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Fri Jul 14, 2006 14:28 Post subject: Архиваторный плагин на Delphi |
|
|
Пытаюсь освоить написание архиваторного плагина на Delphi. Скачал кучу исходников, разбираюсь. Нужна только упаковка.
Добавил все нужные функции, поставил в них заглушки типа ShowMessage, т.е. написал плагин, который ничего не делает.
Установил на расширение «jpg_».
Пытаюсь упаковать файл, появляется сообщение «Ошибка при упаковке».
Проверяю через wcxtest.exe – показывает список всех функций, показывает мой ShowMessage на GetPackerCaps, где Result:= PK_CAPS_NEW; (хочу только паковать).
TC Plugins Manager тоже показывает это сообщение перед вызовом параметров и после. Стоит только галочка «Может создавать архивы», как мне и надо.
Почему ни один из других ShowMessage в Total нигде не показан?
Что я делаю не так?
Где ещё можно найти примеры простых арх. плагинов на Delphi, хотя бы типа DiskDir?
Добавил возможность править Result:= PK_CAPS_NEW or PK_CAPS_MODIFY; так же
Last edited by Моторокер on Fri Jul 14, 2006 14:41; edited 1 time in total |
|
Back to top |
|
|
Lamer
Joined: 20 Mar 2006 Posts: 522
|
(Separately) Posted: Fri Jul 14, 2006 14:35 Post subject: |
|
|
Так ведь ТС по ходу упаковки от плагина только прогресс запрашивает?! Или я не прав?
Ну с простыми как раз туговато,а вот сырцы 7zipа посмотреть познавательно. |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Fri Jul 14, 2006 14:47 Post subject: |
|
|
Какой прогресс?
На PackFiles не показан ShowMessage. _________________ плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми |
|
Back to top |
|
|
Lamer
Joined: 20 Mar 2006 Posts: 522
|
(Separately) Posted: Fri Jul 14, 2006 15:23 Post subject: |
|
|
Прогресс процесса упаковки,по которому Тотал ведёт progressbar.
А то,что "На PackFiles не показан ShowMessage.", я понял.ИМХО это неудивительно.Это же не листер-плагин.Тотал из его кишок почти ничего не запрашивает и почти ничего не отображает(диалог настроек да,но это не наш случай). Он просто получает успешное/неуспешное завершение упаковки от плагина и даёт свой messagebox при ошибке,а не плагинские.
Могу и ошибаться конечно.Последний раз плагиновое API конкретно для архиваторных смотрел где-то полгода назад. |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Fri Jul 14, 2006 23:12 Post subject: |
|
|
2Lamer
Перед упаковкой может вызываться диалог настроек насильно. Смотри плагин wipe, например. |
|
Back to top |
|
|
Lamer
Joined: 20 Mar 2006 Posts: 522
|
(Separately) Posted: Fri Jul 14, 2006 23:41 Post subject: |
|
|
funduk wrote: | 2Lamer
Перед упаковкой может вызываться диалог настроек насильно. Смотри плагин wipe, например. |
Самим плагином. С этим я спорить и не собираюсь.Но повторяю: это не наш случай. Т.е. Моторокер до диалога настроек ещё не добрался. У него там пока заглушки. |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Mon Jul 17, 2006 07:10 Post subject: |
|
|
Русский неполный незавершённый перевод «Написание WCX архиваторных плагинов»
http://motorocker.nm.ru/download/wcx_writer_s_reference.rus.rar (23 Kb)
Сам же и виноват – не включил обязательные SetProcessDataProc и SetChangeVolProc. Хорошо бы wcxtest.exe ругался на это.
Продолжаю разбираться дальше.
Last edited by Моторокер on Fri Jul 21, 2006 14:28; edited 1 time in total |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Mon Jul 17, 2006 12:16 Post subject: |
|
|
Статья Архиваторный плагин на Borland Delphi
Также
Writing WCX packer plugins for Total Commander wrote: | SubPath – либо NULL, если файлы должны быть упакованы с путями, которые передаются в именах файлов, либо not NULL, когда они должны быть помещены ниже placed below данного подкаталога в архиве. Пример:
SubPath="подкаталог"
Имя в AddList=" подкаталог2\filename.ext"
-> Файл должен быть упакован как "подкаталог\подкаталог2\filename.ext" |
Этот момент не понял. Что, куда, где, когда передаётся? Это Total как-то передаёт? Или пользователь галочку ставит?
Это галочка «Отдельные архивы для каждого выбранного файла/каталога»?
Last edited by Моторокер on Thu Jul 20, 2006 11:56; edited 1 time in total |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Tue Jul 18, 2006 08:26 Post subject: |
|
|
понял, SubPath – это открытая папка в архиве, в которую и нужно паковать, т.е.
FileName:= SubPath + SrcPath + AddList[i]
Спасибо Олегу Бондарю, автору wcxtest |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Tue Jul 18, 2006 22:27 Post subject: |
|
|
Моторокер wrote: | Русский неполный незавершённый перевод «Написание WCX архиваторных плагинов» |
Мои 5 копеек в перевод:
you need to implement - вы должны реализовать...
STDCALL calling convention - соглашение о связях STDCALL
can be implemented to support archives - может быть реализована для поддержки архивов...
if this function is not implemented, Totalcmd assumes - если эта функция не реализована, Totalcmd подразумевает..
is passed to - передается в ...
Suggested location+name of the ini file - предлагаемое расположение+имя ini-файла
reflecting the user choice - отражающий выбор пользователя
currently - на данный момент / в настоящее время
...in this file, because it is shared by other file system plugins! -
... в этом файле, потому что он одновременно используется и другими плагинами!..
Using this, you should be able to find out information
Используя это, вы будете иметь возможность узнать информацию
In short, you are supposed to set at least - короче говоря, предполагается что вы по крайней мере установите... |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Tue Jul 18, 2006 22:40 Post subject: |
|
|
Volniy wrote: | STDCALL calling convention - соглашение о связях STDCALL | Какие связи? STDCall - это вроде протокол вызова процедур... Хотя мож по-русски так и устоялось...
assume=предполагать
Quote: | ...in this file, because it is shared by other file system plugins! -
... в этом файле, потому что он одновременно используется и другими плагинами!.. | Тогда уж другими плагинами файловой системы?
In short, you are supposed to set at least - короче говоря, предполагается что вы установите по крайней мере...
|
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Wed Jul 19, 2006 00:51 Post subject: |
|
|
funduk wrote: | Какие связи? STDCall - это вроде протокол вызова процедур... Хотя мож по-русски так и устоялось... |
Именно формулировку "соглашение о связях" встречал в очень серьезных книгах (не "C++ за 14 дней" ). Допускаю, что есть и другие варианты.
funduk wrote: | assume=предполагать |
Ну нету никаких знаков равенства между английскими и русскими словами. В зависимости от контекста и пр. это слово может иметь одно из следующих значений: принимать, присваивать, напускать на себя; притворяться; симулировать, предпринимать и еще много чего.
Я-то, кстати, выбрал именно предполагать
Ты, это, ты не меня поправляй Там еще статья-то почти на треть не переведена. Приложись по молодецки... |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Wed Jul 19, 2006 01:14 Post subject: |
|
|
Ну не знаю. Нам __cdecl на САКОДе рассказывали долго и нудно, а про stdcall - только то и упоминули как отличие от __cdecl, что вызываемая функция очищает стек по своему завершению (в то время как в __cdecl стек с переданными параметрами очищает сама программа).
Так что "связи"? Хз что в виду имеется... Ладно уж... Пишут - примем
P.S.1: знаки равенства иногда есть и это тот самый случай. Меня поддерживает PROMT.
P.S.2: я больше тестер, чем прогер Мне исправлять больше нравится |
|
Back to top |
|
|
mramor
Joined: 16 Dec 2004 Posts: 100 Location: г. волжский, снг
|
(Separately) Posted: Wed Jul 19, 2006 01:17 Post subject: |
|
|
Volniy wrote: | соглашение о связях STDCALL |
funduk wrote: | Какие связи? STDCall - это вроде протокол вызова процедур... Хотя мож по-русски так и устоялось... |
по-русски устоялось соглашение о вызове. |
|
Back to top |
|
|
funduk
Joined: 16 Aug 2005 Posts: 1513 Location: Санкт-Петербург
|
(Separately) Posted: Wed Jul 19, 2006 01:24 Post subject: |
|
|
Во! Теперь похоже |
|
Back to top |
|
|
|