Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Архиваторный плагин на Delphi
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Fri Jul 14, 2006 14:28    Post subject: Архиваторный плагин на Delphi Reply with quote

Пытаюсь освоить написание архиваторного плагина на 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
View user's profile Send private message
Lamer



Joined: 20 Mar 2006
Posts: 522

Post (Separately) Posted: Fri Jul 14, 2006 14:35    Post subject: Reply with quote

Так ведь ТС по ходу упаковки от плагина только прогресс запрашивает?! Или я не прав?
Ну с простыми как раз туговато,а вот сырцы 7zipа посмотреть познавательно.
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Fri Jul 14, 2006 14:47    Post subject: Reply with quote

Какой прогресс?
На PackFiles не показан ShowMessage.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Lamer



Joined: 20 Mar 2006
Posts: 522

Post (Separately) Posted: Fri Jul 14, 2006 15:23    Post subject: Reply with quote

Прогресс процесса упаковки,по которому Тотал ведёт progressbar.
А то,что "На PackFiles не показан ShowMessage.", я понял.ИМХО это неудивительно.Это же не листер-плагин.Тотал из его кишок почти ничего не запрашивает и почти ничего не отображает(диалог настроек да,но это не наш случай). Он просто получает успешное/неуспешное завершение упаковки от плагина и даёт свой messagebox при ошибке,а не плагинские.
Могу и ошибаться конечно.Последний раз плагиновое API конкретно для архиваторных смотрел где-то полгода назад.
Back to top
View user's profile Send private message
funduk



Joined: 16 Aug 2005
Posts: 1513
Location: Санкт-Петербург

Post (Separately) Posted: Fri Jul 14, 2006 23:12    Post subject: Reply with quote

2Lamer
Перед упаковкой может вызываться диалог настроек насильно. Смотри плагин wipe, например.
Back to top
View user's profile Send private message
Lamer



Joined: 20 Mar 2006
Posts: 522

Post (Separately) Posted: Fri Jul 14, 2006 23:41    Post subject: Reply with quote

funduk wrote:
2Lamer
Перед упаковкой может вызываться диалог настроек насильно. Смотри плагин wipe, например.

Самим плагином. С этим я спорить и не собираюсь.Но повторяю: это не наш случай. Т.е. Моторокер до диалога настроек ещё не добрался. У него там пока заглушки.
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Mon Jul 17, 2006 07:10    Post subject: Reply with quote

Русский неполный незавершённый перевод «Написание 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
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Mon Jul 17, 2006 12:16    Post subject: Reply with quote

Статья Архиваторный плагин на 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
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Tue Jul 18, 2006 08:26    Post subject: Reply with quote

понял, SubPath – это открытая папка в архиве, в которую и нужно паковать, т.е.
FileName:= SubPath + SrcPath + AddList[i]
Спасибо Олегу Бондарю, автору wcxtest
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Tue Jul 18, 2006 22:27    Post subject: Reply with quote

Моторокер 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
View user's profile Send private message
funduk



Joined: 16 Aug 2005
Posts: 1513
Location: Санкт-Петербург

Post (Separately) Posted: Tue Jul 18, 2006 22:40    Post subject: Reply with quote

Volniy wrote:
STDCALL calling convention - соглашение о связях STDCALL
Какие связи? Shocked STDCall - это вроде протокол вызова процедур... Хотя мож по-русски так и устоялось...

assume=предполагать

Quote:
...in this file, because it is shared by other file system plugins! -
... в этом файле, потому что он одновременно используется и другими плагинами!..
Тогда уж другими плагинами файловой системы?

In short, you are supposed to set at least - короче говоря, предполагается что вы установите по крайней мере...

Rolling Eyes Rolling Eyes Rolling Eyes Embarassed Embarassed Embarassed
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Wed Jul 19, 2006 00:51    Post subject: Reply with quote

funduk wrote:
Какие связи? Shocked STDCall - это вроде протокол вызова процедур... Хотя мож по-русски так и устоялось...

Именно формулировку "соглашение о связях" встречал в очень серьезных книгах (не "C++ за 14 дней" Smile ). Допускаю, что есть и другие варианты.

funduk wrote:
assume=предполагать

Ну нету никаких знаков равенства между английскими и русскими словами. В зависимости от контекста и пр. это слово может иметь одно из следующих значений: принимать, присваивать, напускать на себя; притворяться; симулировать, предпринимать и еще много чего.
Я-то, кстати, выбрал именно предполагать

Ты, это, ты не меня поправляй Laughing Там еще статья-то почти на треть не переведена. Приложись по молодецки...
Back to top
View user's profile Send private message
funduk



Joined: 16 Aug 2005
Posts: 1513
Location: Санкт-Петербург

Post (Separately) Posted: Wed Jul 19, 2006 01:14    Post subject: Reply with quote

Ну не знаю. Нам __cdecl на САКОДе рассказывали долго и нудно, а про stdcall - только то и упоминули как отличие от __cdecl, что вызываемая функция очищает стек по своему завершению (в то время как в __cdecl стек с переданными параметрами очищает сама программа).
Так что "связи"? Хз что в виду имеется... Ладно уж... Пишут - примем Smile

P.S.1: знаки равенства иногда есть и это тот самый случай. Меня поддерживает PROMT.
P.S.2: я больше тестер, чем прогер Smile Мне исправлять больше нравится Very Happy
Back to top
View user's profile Send private message
mramor



Joined: 16 Dec 2004
Posts: 100
Location: г. волжский, снг

Post (Separately) Posted: Wed Jul 19, 2006 01:17    Post subject: Reply with quote

Volniy wrote:
соглашение о связях STDCALL


funduk wrote:
Какие связи? STDCall - это вроде протокол вызова процедур... Хотя мож по-русски так и устоялось...


по-русски устоялось соглашение о вызове.
Back to top
View user's profile Send private message
funduk



Joined: 16 Aug 2005
Posts: 1513
Location: Санкт-Петербург

Post (Separately) Posted: Wed Jul 19, 2006 01:24    Post subject: Reply with quote

Во! Теперь похоже Smile
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group