View previous topic :: View next topic |
Author |
Message |
AkulaBig
Joined: 03 Dec 2008 Posts: 334
|
(Separately) Posted: Sat Jun 21, 2025 22:32 Post subject: |
|
|
Orion9 wrote: | Чем меньше пользовательских кнопок, тем больше пустого, зияющего пространства справа, что само по себе некрасиво, на мой взгляд. |
Можно конечно все стандартные иконки показать. Но ведь мне потом с этим работать. Сборка-то у меня рабочая, а не на выставку. И так некоторые иконки я раз в год использую.
Orion9 wrote: | По той же причине верхнее меню должно иметь больше пунков |
Это мое принципиальное значение - никакого расширенного меню.
Orion9 wrote: | пустое пространство заголовка ТС просто само просит, чтобы его чем-то заполнили. |
Ну это-же у меня сделано. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1527
|
(Separately) Posted: Sat Jun 21, 2025 23:26 Post subject: |
|
|
Orion9 wrote: | Ну как там багофиксы продвигаются, конец виден? |
Последние три недели как-то не было возможности всем этим заниматься. Но DllCall и Callback исправил, ориентировочно завтра выложу минорную версию. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 780
|
(Separately) Posted: Sun Jun 22, 2025 00:31 Post subject: |
|
|
AkulaBig wrote: | Можно конечно все стандартные иконки показать. |
Да нет. Дело не в стандартных иконках, а в том, что кнопок накопилось много за годы использования, особенно в последнее время. А стандартных иконок на всей панели у меня может процентов 10 от общего количества, не больше.
AkulaBig wrote: | Это мое принципиальное значение - никакого расширенного меню. |
А я бы не спешил. Многие программы в своем интерфейсе используют такую фишку, как "режим эксперта" и "режим простого пользователя", и это, на мой взгляд, правильно. Если бы я делал публичную сборку, я бы точно использовал такой подход. Но поскольку я делаю только для себя, то у меня всего одно расширенное меню как раз на пол экрана )
Loopback wrote: | DllCall и Callback исправил, ориентировочно завтра выложу минорную версию. |
Класс. Спасибо. Ждём.
Loopback wrote: | - узнать, включены ли значки
- узнать их размер
- получить панель, над которой находится курсор (ItemAtCursor)
- получить хэндл панели (RequestInfo)
- получить координаты этой панели (WinGetPos)
- вычислить прямоугольник, где может находиться курсор, с помощью размера значка
- получить координаты курсора (MouseGetPos)
- проверить, находится ли курсор в границах прямоугольника |
Нет, всё-таки не мог я дать такому алгоритму пропасть. Немного сделал по-другому, но основная идея та же.
Code: | If FieldIndex = 1 Then
Local x, y, w, h, mx, my
Local hWnd = RequestInfo(ItemAtCursor("panel"))
WinGetPos("", "", "w", "h", hWnd)
If w > 0 Then
MouseGetPos("x","y")
Static buf = Buffer(8) # POINT
buf.Zero()
buf.SetNum(0, "long", x, "long", y)
DllCall("ScreenToClient", "hwnd", hWnd, "ptr", buf.ptr)
x = buf.GetNum(0)
MediaInfoNum = 1
Switch Round(x/w*100,0)
Case 1 To 10
b_CTRL = 1
b_SHIFT = 1
Case 10 To 90
b_CTRL = 1
Case 90 To 100
MediaInfoNum = 4
EndSwitch
EndIf |
Как видите, строк совсем немного, но какой эффект! Я бы назвал это волшебным хинтом ) Панель делится на три части. Первые 10% слева выводят один хинт, 80% посередине выводят второй, последние 10% справа - третий. Счастью нет предела.
Строка If FieldIndex = 1 Then из тела рабочей функции JointHint, полный код которой привести не могу, так как он сильно завязан на множество других функций. Но для работоспособности любого кода необходимые параметры нужно задать в Switch...EndSwitch. |
|
Back to top |
|
 |
|
|
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
|