![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Приветствую!
Как можно обойти проблему максимальных координат элементов в 32767 пикселей? То есть то, что, к примеру, свойство Top элементов управления не может превышать значение в 32767. В целом, задача следующая. Необходимо выводить данные в табличном виде, много данных ![]() Насколько я понимаю, необходимо сместить систему координат (примерно, как это происходит при наличии ScrollBar), то есть, чтобы значения, свыше 32767 воспринимались, как меньшие. В процессе поиска информации по данному вопросу, мне в связи с этим встречалось упоминание процедуры TranslateTransform. Как ее в этом случае можно (и нужно ли вообще) использовать? Или будут какие другие варианты решения проблемы? P.S. Проблема эта распространена, часто встречаются обсуждения, но решения я так и не увидел. Другой взгляд на эту проблему (если мне не удалось толком объяснить) можно посмотреть здесь: http://stackoverflow.com/questions/8...767-size-limit и https://social.msdn.microsoft.com/Fo...ntroltop-32767 |
#2
|
||||
|
||||
![]() "магическое" число 32767 (в двоичной 0111111111111111) есть максимальное значение целого знакового двубайтового. Если большая высота "не работает", то скорее всего где-то в винде используется целый двубайтовый тип для указания высоты. Это так просто не обойти, мне кажется.
Можно попробовать сделать свой компонент, который будет выводить данные частями по мере прокрутки и перерисовывать прямо на месте, тогда такие огромные высоты не понадобятся. Хотя может в каких-то компонентах эта логика уже реализована, не знаю. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 09.04.2015 в 23:29. |
#3
|
|||
|
|||
![]() Цитата:
![]() |
#4
|
||||
|
||||
![]() Ну я в готовых компонентах не силен, потому подождем ответа от кого-нибудь, кто знает о таких компонентах.
Если не будет ответа, можно сделать как я говорил: сделать grid на 2 строки больше, чем область вывода, по положению ScrollBar'а определять номера строк, которые надо подгрузить из массива, и писать их туда, сдвигая grid на нужный коэффициент вверх/вниз для иллюзии плавной прокрутки. По идеи мерцать при отрисовке не должно, особенно с дабл-буфером, хотя не знаю. Делал нечто подобное, когда писал свой memo с подсветкой синтаксиса, только сдвигал на +/- одну строку не само окно отрисовки, а только координаты начала рисования текста. jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
![]() Цитата:
Так что у вас, скорее всего, где-то в расчетах глюк, или вы сами неверный тип где-то используете. Не стоит путать форумы с богадельнями. © Bargest |
#6
|
||||
|
||||
![]() На МСДН написано, что
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
|||
|
|||
![]() Посмотри на DevExpress'овский грид. У них полностью кастомная отрисовка и нативная (своя) вставка контролов в ячейки.
|
#8
|
||||
|
||||
![]() Цитата:
Не стоит путать форумы с богадельнями. © Bargest |