Orion9

|
Posted: Fri Jul 10, 2026 14:02 Post subject: |
|
|
| sa wrote: | | Для отдельной кнопки вполне можно пользоваться и стандартным вариантом TC – через контекстное меню кнопки, пункт "Вырезать". |
Да, надо еще посмотреть, что будет удобнее. Если требуется удалить несколько кнопок, то Drag&Drop, по идее, должен быть удобен. Но надо проверить.
| sa wrote: | | хорошо бы добавить пункт меню (в дополнение к "Удалить кнопки за разрывом") для указания мышью крайних кнопок диапазона. |
Маркирировать выбор будет, наверное, сложно. Проще добавить два разрыва и удалить все между ними, но тут надо подумать.
| sa wrote: | | С версии 11.57 стало удобнее с настройкой кнопки |
Да, есть улучшения, не спорю, но все-равно процесс мучителен
Посмотрим, что получится. Пока только сделал сохранение. Оказалось сложнее, чем я думал, но фича полезная. Пока плохо протестированная, но вот
| Code: | txt &= 'MENUITEM "Отладочная информация", em_aucmd ' & (gHBarDbg ? "/C" : "") & ' -1 HBarDebugInfo' & auCRLF
txt &= 'MENUITEM SEPARATOR' & auCRLF
txt &= 'MENUITEM "Сохранить...", em_aucmd -1 HBarSaveAs' & auCRLF
txt &= 'POPUP "Загрузить панель"' & auCRLF
|
 Hidden text | Code: | Func HBarSaveAs()
# буфер для имени файла
Local file = Buffer(1024)
file.Zero()
file.SetStr(gHBarFile)
# буфер для фильтра расширений
Local fstr = "Bar files (*.bar)" & Chr(0) & "*.bar" & Chr(0) & Chr(0)
Local flen = StrLen(fstr) * 2
Local filt = Buffer(flen)
filt.Zero()
filt.SetStr(fstr)
# буфер для структуры OPENFILENAMEW
Local ofn = Buffer(auX64 ? 152 : 76)
ofn.Zero()
ofn.SetNum(0, "UInt", ofn.size) # lStructSize
If auX64 Then
ofn.SetNum(8, "Ptr", AUTORUN_TCHANDLE) # hwndOwner
ofn.SetNum(24, "Ptr", filt.ptr) # lpstrFilter
ofn.SetNum(48, "Ptr", file.ptr) # lpstrFile
ofn.SetNum(56, "Dword", file.size) # nMaxFile
ofn.SetNum(96, "Dword", 0x00000802) # 0x00000002 | 0x00000800
Else
ofn.SetNum(4, "Ptr", AUTORUN_TCHANDLE) # hwndOwner
ofn.SetNum(12, "Ptr", filt.ptr) # lpstrFilter
ofn.SetNum(28, "Ptr", file.ptr) # lpstrFile
ofn.SetNum(32, "Dword", file.size) # nMaxFile
ofn.SetNum(52, "Dword", 0x00000802) # 0x00000002 | 0x00000800
EndIf
If DllCall("comdlg32\GetSaveFileNameW", "Ptr", ofn.ptr) Then
Local new = file.GetStr()
If new <> gHBarFile Then gHBarList.SaveToFile(new, gHBarCP)
EndIf
Free(file, filt, ofn)
EndFunc |
|
|