Notes |
|
(0007741)
|
zed
|
02-07-2012 19:13
|
|
>Ответственный => zed
Хех. Дело в том, что я без понятия, с какой стороны подступиться. А так бы да, сделал. |
|
|
|
|
|
(0007743)
|
Garl
|
02-07-2012 19:26
|
|
кстати может "отображать линейку" тоже в эту менюшку засунуть? |
|
|
|
Ну видимо галочки - это пункты меню с чекбоксами.
А на цвета - окошко. |
|
|
(0007745)
|
zed
|
02-07-2012 19:29
|
|
>А в чем сложности?
Так: "я без понятия, с какой стороны подступиться" (c)
>кстати может "отображать линейку" тоже в эту менюшку засунуть?
Кстати, для линейки нужно своё меню, при клике по ней.
>А на цвета - окошко.
Ну и пункты с чекбоксами там можно повторить, для комплекту. |
|
|
|
Смотри как контекстное меню сделано в миникарте и делай по образу и подобию. Точнее гораздо проще, ибо там динамически пункты генеряться, а тут тупо статическое меню навесить. |
|
|
(0009137)
|
zed
|
03-10-2012 16:29
|
|
C бОльшего вроде всё получилось, но есть трудность с меню для линейки: там создаётся достаточно большая битмапка, которая перекрывает карту. Надо бы сделать так, чтобы меню вызывалось только при клике в нижней части экрана (по горизонтальному участку линейки), но что-то не соображу как вызывать родительское меню. Так же, в районе линейки перестаёт действовать событие OnMouseMove родительского слоя (основной карты), так что там нельзя схватить и подвинуть карту. Если включена только горизонтальная линейка, то это ещё не очень сильно мешает и можно как-то выкрутиться (подогнать размер битмапки, чтобы она не перекрывала лишнего), но вот при включении вертикальной линейки получается неудобно и обходного пути не видно...
Есть мысли, как можно это всё порешить? |
|
|
|
Вариантов два. Разделить вертикальную и горизонтальную линейку на разные слои. Или включить хит-тест по прозрачности. |
|
|
(0009139)
|
zed
|
03-10-2012 18:33
|
|
Про второй вариант по-подробнее можно? |
|
|
|
У TBitmapLayer есть пропертя AlphaHit, вот что про нее написано в документации:
If AlphaHit=True, layer checks the opacity of the pixel lying under the specified point and passes the hit test only when the alpha channel of the pixel is greater when zero.
Я правда сам этого никода не пробовал включать. |
|
|
|
Еще. Я бы на твоем месте создал сами поп-ап менюшки прямо в дизайн-тайме на главной форме и просто передал их в конструкторы слоев. Так бы ты избежал проблем с локализацией этих пунктов меню и временем их жизни. А то сейчас есть утечка памяти. |
|
|
(0009142)
|
zed
|
04-10-2012 06:36
|
|
>У TBitmapLayer есть пропертя AlphaHit
О, именно то, что надо!
>Так бы ты избежал проблем с локализацией этих пунктов меню
Хм, про локализацию я как-то сразу не подумал. Хотя, в принципе, ведь достаточно все строки сделать ресорсными и должно заработать? Правда не известно, как оно себя поведёт при динамическом изменении языка.
С другой стороны, если делать менюшки в дизайне, то в главной форме появится ещё пачка OnClick методов, для пунктов меню, что ещё больше загромоздит и без того перегруженный юнит. Да и переделывать эти менюшки уже неохота.
>А то сейчас есть утечка памяти.
Уже нету. |
|
|
|
>Хотя, в принципе, ведь достаточно все строки сделать ресорсными и должно заработать?
Неправда. Придется вешать обработчик события смены языка, который будет заново расставлять кепшены.
>С другой стороны, если делать менюшки в дизайне, то в главной форме появится ещё пачка OnClick методов, для пунктов меню, что ещё больше загромоздит и без того перегруженный юнит.
Это конечно так, но кто мешает ограничиться одним онкликом с проверкой тега как это сделано у тебя сейчас, а во-вторых, это даст возможность добавить эти пункты в главное меню и повесить на них хоткеи, если кому-то это понадобиться. |
|
|
(0009144)
|
Tolik
|
05-10-2012 06:23
|
|
Супер!
Только заметил мелкие недочёты (ну работа у меня такая :)
1. Если кликнуть по линейке правой кн., выбрать опции, поставить галку у вертикальной шкалы, ок - она включается. Но если снова кликнуть - галочка у пункта Show Vertical... контекстного меню не активна. То же самое с форматом чисел и, вероятно, всеми остальными параметрами. То же самое со строкой статуса.
2. Я думаю, Scale Legend надо всюду заменить на Scale (и в меню View тоже).
3. Чтобы попасть в конт. меню линейки, надо слишком точно прицеливаться в линию или цифру. |
|
|
(0009146)
|
zed
|
05-10-2012 06:48
|
|
1. Ничего не понял, что значит не активна? У меня всё активно и включается и отключается именно столько раз, сколько я захочу. Во всех пунктах менюшек и в окошке настроек. Если там какой-то неадекват, то это уже в новый тикет - будем разбираться.
2. Не надо.
3. Да, и по другому никак. |
|
|
(0009147)
|
zed
|
05-10-2012 06:51
|
|
А, понял. Да, есть такое. |
|
|
(0009155)
|
Tolik
|
05-10-2012 09:38
|
|
Ещё пункт меню Settings - Interface Options выровняйте, пожалуйста, с остальными п. |
|
|
|
Ой перемудрил ты с руссификацией. А сделал бы как я предлагал с простой передачей готового поп-апа в слой, то оно б это все автоматом реализовало. |
|
|
(0009157)
|
zed
|
05-10-2012 09:57
|
|
|