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 

WDX и всплывающие подсказки

 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
HexTA



Joined: 31 Aug 2006
Posts: 2
Location: Могилёв

Post (Separately) Posted: Thu Aug 31, 2006 22:22    Post subject: WDX и всплывающие подсказки Reply with quote

При написании своего WDX плагина возникла проблема:

Плагин возвращает текст состоящий из нескольких строк, но Тотал всегда отображает этот текст в виде одной строки. При поиске или групповом переименовании это конечно удобно и логично, но вот в всплывающих подсказках смотрится не очень красиво.

Есть ли способ отображать многострочный текст в подсказках нормально? (TotalCmd v6.55)
Back to top
View user's profile Send private message
funduk



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

Post (Separately) Posted: Thu Aug 31, 2006 22:49    Post subject: Reply with quote

Пока нет. Возвращай несколько строк - юзер сам настроит подсказку.
Back to top
View user's profile Send private message
HexTA



Joined: 31 Aug 2006
Posts: 2
Location: Могилёв

Post (Separately) Posted: Fri Sep 01, 2006 09:43    Post subject: Reply with quote

"Пока нет" - это значит, возможно будет в следующих версиях?
Жаль, хотелось красиво и сразу, ну и за это спасибо.
Back to top
View user's profile Send private message
funduk



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

Post (Separately) Posted: Fri Sep 01, 2006 15:12    Post subject: Reply with quote

HexTA wrote:
"Пока нет" - это значит, возможно будет в следующих версиях?
Это просят периодически, но Гислер не отвечает. Может, будет, может, нет.
Back to top
View user's profile Send private message
Oticon



Joined: 21 Sep 2006
Posts: 13
Location: Харьков

Post (Separately) Posted: Thu Sep 21, 2006 21:44    Post subject: Reply with quote

Столкнулся с похожей проблемой.
Кроме того в подсказке максимальная длина одного значения, возвращаемого плагином, ограничена 255 символами. Я не ошибаюсь?
А какой стандартный максимальный размер буфера для FieldValue ?
Где-нибудь это описано?
Я вышел на странное значение - 2308 байта. Больше начинаются глюки. Но для нормальной реализации поиска мне надо около 5000.
И за что отвечает maxlen? Это оно или нет?
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5918
Location: Москва

Post (Separately) Posted: Thu Sep 21, 2006 22:50    Post subject: Reply with quote

Oticon wrote:
И за что отвечает maxlen? Это оно или нет?

maxlen - это размер буфера, который выделен Тоталом под возвращаемые данные. Попытаешься забросить в буфер большее количество данных - будет переполнение, со всеми вытекающими.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Oticon



Joined: 21 Sep 2006
Posts: 13
Location: Харьков

Post (Separately) Posted: Fri Sep 22, 2006 20:22    Post subject: Reply with quote

Спасибо.

А будьте добры, объясните индейцу, как задается этот maxlen?
Только для всей ветви (в функции ContentGetSupportedField) или можно для каждого подпункта его задавать (в функции ContentGetValue)? Как правильно?
У меня не получается его передать. Как правильно это сделать?
Pinteger(maxlen)^ := X
Или я просто не там его передаю?

И еще один вопрос, как правильно передать в FieldValue число типа Real? Очень нужно для правильной сортировки, иначе я мог бы просто вывести его как String.
Как передавать строку или целое понятно (Pinteger и StrCopy). С Real по аналогии не получается.

Естественно, все сказанное относится к Delphi.

Прошу меня простить, возможно это глупые вопросы, но это мой первый плагин для тотала. И кроме того, где еще могут лучше всего ответить на этот вопрос как не тут.
Заранее спасибо.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5918
Location: Москва

Post (Separately) Posted: Fri Sep 22, 2006 20:35    Post subject: Reply with quote

Oticon wrote:
А будьте добры, объясните индейцу, как задается этот maxlen?

Его передаёт Тотал плагину, а не наоборот! Laughing
То есть, перед вызовом плагина Тотал выделяет у себя в памяти буфер, чтобы плагин мог в этот буфер что-то записать. И вызывает плагин, передавая ему адрес буфера и размер выделенного блока в качестве параметров, просто для того, чтобы плагин знал, сколько ему места отведено. Менять ни адрес, ни переданный maxlen нельзя! Это входные параметры (для плагина), а не выходные.

Oticon wrote:
И еще один вопрос, как правильно передать в FieldValue число типа Real?

Для вещественных значений интерфейс предусматривает тип ft_numeric_floating. Его надо вернуть для соответствующего поля в ContentGetSupportedField, а в ContentGetValue просто приводить указатель на FieldValue к указателю на нужный вещественный тип. К сожалению, я плохо помню паскалевские типы. В SDK плагина сказано, что для вещественных значений требуется использовать 64-битный тип, определённый ISO-стандартом. Не думаю, что Дельфи отклонился от стандарта в этой области, но какой из всех его вещественных типов является 64-битным, я не смогу так сходу сказать. Надо смотреть справочники.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Oticon



Joined: 21 Sep 2006
Posts: 13
Location: Харьков

Post (Separately) Posted: Fri Sep 22, 2006 20:48    Post subject: Reply with quote

С maxlen понятно, спасибо. Жаль что нельзя его увеличить - это сильно ограничивает.
А по поводу вещественных чисел, я наверно действительно по глупой привычке использовал 32 битный тип. Надо проверить, в ПН на работе посмотрю.
Сейчас еще поищу у вас исходники WDX-плагинов, себе для примеров, наверняка найду что-то для повышения опыта.
Где еще можно их найти?
Back to top
View user's profile Send private message
funduk



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

Post (Separately) Posted: Fri Sep 22, 2006 20:53    Post subject: Reply with quote

На wincmd.ru полно исходников. Смотри, например:
AudioInfo
Chmdir (он спаренный - wCdx)
Exif
FileDescriptions
JpgComment (не помню, релизнули ли его уже на wincmd.ru или нет)
MP3Info
SuperWDX
xPDFSearch
Back to top
View user's profile Send private message
Oticon



Joined: 21 Sep 2006
Posts: 13
Location: Харьков

Post (Separately) Posted: Fri Sep 22, 2006 21:10    Post subject: Reply with quote

Спасибо большое!!!
Из них я всего парочку смотрел, буду искать остальные.

А стоит ли выкладывать мой плагин на wincmd.ru.
Это уже не первая версия, просто решил кое-чего добавить и исправить ошибки.
Дело в том, что плагин используется для показа информации о файлах in4.
Это - "файлу обміну даними результатів землевпорядних робіт в електронному вигляді" (цитата).Используются, наверно, только в Украине, но могут быть востребованы и в России или других странах СНГ (возможно, в несколько изменненом виде).
По-этому переводить его на английский язык не имеет смысла.
Помнится, это одно из требований.
По сути - текстовый файл, чем-то сродни XML, с довольно сложной структурой и МНОЖЕСТВОМ ньюансов.
Back to top
View user's profile Send private message
funduk



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

Post (Separately) Posted: Fri Sep 22, 2006 21:27    Post subject: Reply with quote

СтОит выкладывать однозначно. Здесь много пользователей из Украины. А про требование - там только описание аддона надо придумать английское (а не локализовывать сам плагин). Напиши всё как есть и то, что это не для англоговорящих =)
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
Page 1 of 1

 
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