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 

Single Post  Topic: Drag&Drop на главной панели инструментов 
Author Message
Orion9



PostPosted: Sun Jul 12, 2026 19:21    Post subject: Reply with quote

sa wrote:
Лучше, наверное, запретить перенос значка на разделители, по крайней мере на разрывы – это, к тому же чревато ошибками в работе скрипта.

Да, это приводит к серьезным ошибкам! Там вообще на ниточке все держится. Если в файле панели будет мальшее отклонение от нормы, то проблемы будут обязательно. Видимо, придется пересматривать считывание панели с учетом разных нюансов, ведь сейчас кнопки просто определяются по наличию ключа button=, а разделители по cmd= с учетом, что ключ button= пустой.
Fix:
Code:
Func HBarDragIcon(DragIdx, DropIdx)
    # проверка индекса получателя
    If gHBarMap[DropIdx-1] <> 1 Then Return ShowDragHint("Получатель не может быть разделителем")
    # сохранение значка
    Local val = IniRead(gHBarFile, "Buttonbar", "button" & DragIdx)

sa wrote:
Возможно, удобнее один из двух разрывов оставлять

Обновленная функция
 Hidden text

Добавил к регулярному выражению \Z, иначе последний ключ терялся, если панель заканчивается eof, а не \r\n. В функции HBarMergeOne это тоже нужно подправить.

+Новые два пункта
Code:
    txt &= 'MENUITEM SEPARATOR' & auCRLF
    txt &= 'MENUITEM "Добавить разрыв", em_aucmd -1 HBarAddButton -2' & auCRLF
    txt &= 'MENUITEM "Добавить разделитель", em_aucmd -1 HBarAddButton 1' & auCRLF   
    txt &= 'POPUP "Удалить кнопки за разрывом"' & auCRLF

 Hidden text

Здесь все было просто. И последний фикс
Code:
SetHotkeyAction /K:W /H:BS "HBarUndo"

Иначе клавиша Win чудила с ключами /DM /S, скорее всего из-за последнего.

Ну вот, пока так. Остальные испытания чуть позже. Кстати, WinRedraw(0) все-равно не всегда помогает, увы.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group