|
|
|
Слои
|
|||
|---|---|---|---|
|
#18+
Уважаемые коллеги! Есть ПБ10, МС2003. В поле ДВ, раздел Position-> есть BAND FOREGROUND BACKGROUND. ЕСли нажать правой клавишей мыши на поле то имеем- bring TO BACK BRING TO FRONT. Экспериментально(так как не нашел описания) обнаружено что FOREGROUND/BACKGROUND позволяют гонять поле по всему ДВ. BAND позволяет двигаться внутри той BAND в кот находится поле(хотя в run time пренеприятнейшим образом поле из detail band попадало header band. Вычисление координат поля в BAND считается относительно строки а в FOREGROUND абсолютные координаты. ВОПРОС 1.Правильно ли я понимаю этот механизм? 2.как понимать bring TO BACK /BRING TO FRONT? 3.как вычислять FOREGROUND/BACKGROUND координаты объекта(прямоугольника) чтобы попадать в ЛЮБУЮ строку detail band ? НУЖНО помещать в любую строку detail band неопределенное количество цветных прямоугольников произвольной длины и ширины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 11:23 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
1. все правильно 2. bting to back/front это Z-order обьектов внутри одного бенда. т.е. если сделать to front на обьекте который находится в background бенде то он становится выше всех кото в том-же бенде. 3. точного механизма нет. надо прибавлять height от всех хедеров и всех строк чтобы получить абсолютную Y координату строки. (хотя может я ошибаюсь но для версии 7 мы делали так) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 12:19 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
Непонятно что bring to front /send to back не меняет layer(band, foreground, background). Я еле еле понял layer, а как осмыслить bring to front /send не понимаю. Где это описано? Должны ж быть какие то функции по определению высоты какогото бэнда! А там можно и считать высоту строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 12:38 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
авторЯ еле еле понял layer, а как осмыслить bring to front /send не понимаю. Где это описано? А что здесь понимать? Контролы должны быть отрисованы в каком-то порядке. Если они не перекрываются, то визуально этот порядок не имеет значения, а если перекрываются - то имеет (кто кого будет перекрывать). Вот эти самые bring to front /send и меняют этот порядок. В Windows используется аналогичный подход. Найти можно, например, в описании BringToTop(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 14:02 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
Локшин Марк авторЯ еле еле понял layer, а как осмыслить bring to front /send не понимаю. Где это описано? А что здесь понимать? Контролы должны быть отрисованы в каком-то порядке. Если они не перекрываются, то визуально этот порядок не имеет значения, а если перекрываются - то имеет (кто кого будет перекрывать). Вот эти самые bring to front /send и меняют этот порядок. В Windows используется аналогичный подход. Найти можно, например, в описании BringToTop(...) Согласен! Но теперь хочется понять взаимодействие этого механизма с LAYER <-> BAND/foreground/background. Или они совсем не связаны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 15:15 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
sboykoНо теперь хочется понять взаимодействие этого механизма с LAYER <-> BAND/foreground/background. Или они совсем не связаны? Нет, не связаны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 15:57 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
Они действуют в пределах слоя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 16:02 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
Остался совсем один маленький вопрос- как все же пересчитать из BAND системы координат в систему FOREGROUND? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 16:18 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 19:32 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
но в этом примере нет футера групп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 19:44 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
2 Dmitry Большое спасибо за пример! Буду изучать! Пример самодостаточен или там где то есть грабли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2006, 13:12 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
там нет просчета футера груп и не тредполагается более 2-х групп. (у нас футеры групп просто не используются) для ускорения (если у вас статическая высота строк) можно вместо последнего цикла поставить detail.height * (al_line - 1) а так этот алгоритм работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2006, 11:19 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
2 Dmitry Ура" Работает! Спасибо. Сразу возник след.вопрос- аппетит приходит ... как сделать в run-time прямоугольники в строках ДВ, похожие на поля в ДВ, которые можно растягивать, если тянуть за края этого поля. То есть не только размещать прямоугольники внутри ДВ а как в DESIGN работать с этими прямоугольниками. Работать - чтобы оператор мог растягивать прямоугольники и перемещать? Если вы конечно этим занимались! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 12:31 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
sboykoкак сделать в run-time прямоугольники в строках ДВ, похожие на поля в ДВ, которые можно растягивать, если тянуть за края этого поля. То есть не только размещать прямоугольники внутри ДВ а как в DESIGN работать с этими прямоугольниками. Работать - чтобы оператор мог растягивать прямоугольники и перемещать? Свойства: Moveable - двигать, Resizeable - изменять размер можно вручную обрабатывать нажатие и отпускание клавиши мыши... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 12:50 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
Локшин Марк sboykoкак сделать в run-time прямоугольники в строках ДВ, похожие на поля в ДВ, которые можно растягивать, если тянуть за края этого поля. То есть не только размещать прямоугольники внутри ДВ а как в DESIGN работать с этими прямоугольниками. Работать - чтобы оператор мог растягивать прямоугольники и перемещать? Свойства: Moveable - двигать, Resizeable - изменять размер можно вручную обрабатывать нажатие и отпускание клавиши мыши... Это понятно в принципе(как сделать пока не знаю). Основной вопрос философии - как зацепиться за края прямоугольника. В обычной жизни - курсор на них(краях) меняется на 2 параллельные полоски. Как это проделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 14:17 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
sboykoЭто понятно в принципе(как сделать пока не знаю). Основной вопрос философии - как зацепиться за края прямоугольника. В обычной жизни - курсор на них(краях) меняется на 2 параллельные полоски. Как это проделать? Не, ну это, Вы в состоянии прочесть написаное? Локшин МаркСвойства: Moveable - двигать, Resizeable - изменять размер Закладка Properites, на ней закладка Position... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 14:43 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
sboykoВ обычной жизни - курсор на них(краях) меняется на 2 параллельные полоски. Как это проделать? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 14:46 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
Локшин Марк sboykoЭто понятно в принципе(как сделать пока не знаю). Основной вопрос философии - как зацепиться за края прямоугольника. В обычной жизни - курсор на них(краях) меняется на 2 параллельные полоски. Как это проделать? Не, ну это, Вы в состоянии прочесть написаное? Локшин МаркСвойства: Moveable - двигать, Resizeable - изменять размер Закладка Properites, на ней закладка Position... Дело в том что в строках ДВ динамически создаются полоски с нужной координатой и длиной-которые представляют собой рабочее время водителя а само ДВ - нечто вроде календаря. Задача в том чтобы после указания рейса иметь возможность корректировать его по факту и для будущего улучшенного планирования загрузки водителей. То есть уменьшать планируемые простои. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 14:51 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
авторДело в том что в строках ДВ динамически создаются полоски с нужной координатой и длиной-которые представляют собой рабочее время водителя а само ДВ - нечто вроде календаря. Задача в том чтобы после указания рейса иметь возможность корректировать его по факту и для будущего улучшенного планирования загрузки водителей. То есть уменьшать планируемые простои. Чем вас не устраивает предложенное решение? У Вас в каждой строке должна быть независимая длина этой полоски? Ну так сделайте 2 полоски - одну видимую всегда, кроме текущей строки с нужным размером, а вторую растягиваемую, но видимую только в текущей строке и на rowfocuschanging немного обработать. Можно самому смотреть где мышь, нажата она или нет, и соотв. изменять координаты и форму курсора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 15:00 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
2 МАРК Все устраивает. Теоретическая база ясна. А где зюйд зюйд вест неясно. Указующего пальца не хватает. Кроме всего полоски создаются ДИНАМИЧЕСКИ и их несколько штук в строке. И неясно где события типа OnMouseMove, OnMouseOver и событие пересечения границы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 15:07 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
sboykoВсе устраивает. Теоретическая база ясна. А где зюйд зюйд вест неясно. Указующего пальца не хватает. Кроме всего полоски создаются ДИНАМИЧЕСКИ и их несколько штук в строке. То что они создаются динамически, и что их несколько штук на строке - ровным счетом ничего не меняет. sboykoИ неясно где события типа OnMouseMove, OnMouseOver и событие пересечения границы. pbm_mousemove pbm_lbuttondown pbm_lbuttonup ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 15:21 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
Локшин Марк sboykoВсе устраивает. Теоретическая база ясна. А где зюйд зюйд вест неясно. Указующего пальца не хватает. Кроме всего полоски создаются ДИНАМИЧЕСКИ и их несколько штук в строке. То что они создаются динамически, и что их несколько штук на строке - ровным счетом ничего не меняет. sboykoИ неясно где события типа OnMouseMove, OnMouseOver и событие пересечения границы. pbm_mousemove pbm_lbuttondown pbm_lbuttonup Вот это и есть руководящая и направляющая роль ГУРУ в жизни советского человека! Спасибо Марк! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 15:28 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
На самом деле я - бы не создавал полоски динамически. я-бы создал статически в детайле с шириной зависимой от какого-то скрытого поля. и ничего не надо рисовать. ресайз: по правому краю полоски поставить узкую полосочку с курсором SizeWE! и менеджить указанные события для этой узкой полоски. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 19:07 |
|
||
|
Слои
|
|||
|---|---|---|---|
|
#18+
Dmitry.На самом деле я - бы не создавал полоски динамически. я-бы создал статически в детайле с шириной зависимой от какого-то скрытого поля. и ничего не надо рисовать. ресайз: по правому краю полоски поставить узкую полосочку с курсором SizeWE! и менеджить указанные события для этой узкой полоски. Так поначалу и было. НО.. Колчество полосок заранее неизвестно, значит нужно забить по максимуму. Область видимости календаря-то есть количество дней и точность(1 час, полчаса..) тоже неизвестно. Три дня хотя бы часу - уже 72 часа - 72 Computed fields, плюс 36 полосок выполняемых рейсов - мне кажется что СЛИШКОМ много полей на одну страницу. Нужен неплохой компьютер у клиента. Следующие задачи по оптимизации потребуют доп мощности. Поэтому я и перешел на динамическое формирование объектов и сразу получил вопросы которые вам и задаю. Работает быстрее но возросли трудности - а опыта такого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 13:01 |
|
||
|
|

start [/forum/topic.php?fid=15&fpage=75&tid=1337936]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 395ms |

| 0 / 0 |
