Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Вниз

Синхронизация скроллинга в нескольких гридах !?   Найти похожие ветки 

 
MaxY   (2005-12-27 13:49) [0]

Добрый день.

Вот встала такая проблема. Решил предоставить пользователю информацию в трех гридах (расположены слева направо). Так как строка представляется на всех трех гридах (по частям, начало в первом, середина во втором и конец в третьем), то нужно добиться синхронного перемещения фокуса во всех гридах (как если бы это был один).
Использую cxGrid, в них обычные cxGridTableView. Вот добился синхронизации при навигации с клавиатуры и со скроллинга мышки. Все движется как надо. Осталась одна проблема: скроллирование грида по вертикальному скроллбару (фокус то стоит нормально во всех гридах, да вот в одном он на верхней строке, в другом на нижней и тд). Событий на эту штуку не нашел.
Есть вот событие onTopRecordIndexChanged, но такого свойства как TopRecordIndex нет.
Кто подскажет, как устранить такое поведение?
P.S. А вообще это нужно для возможности горизонтально скроллировать все три грида независимо друг от друга.


 
Jeer ©   (2005-12-27 13:57) [1]

Может изначально идеологический подход не верен ?
Упрощай :)


 
MaxY   (2005-12-27 15:04) [2]

Упрощать не буду. Если решения не найду, просто придется убрать скролбар вертикальный.
Просто это лучшее, что можно было придумать для отображения таких данных, причем не лишь бы показать... В таком виде будет очень удобно анализировать данные.


 
ANB ©   (2005-12-27 15:25) [3]


> MaxY   (27.12.05 15:04) [2]

А запихать все в один грид в разные колонки не судьба ?
Эхлибовский позволяет менять высоту колонки и автоматически их растягивает/сжимает по вертикали.


 
Deka ©   (2005-12-27 15:25) [4]

Может размножить событие от скролбара на все гриды?


 
MaxY   (2005-12-27 15:47) [5]


> ANB ©   (27.12.05 15:25) [3]


     > А запихать все в один грид в разные колонки не судьба ?

колонка = столбец? так не пойдет, горизонтальный скроллинг будет двигать всю область - от этого и нужно уйти.
Эхлибовский грид не пользую. И не хочу его применять, по ряду причин.


> Deka ©   (27.12.05 15:25) [4]

а как это можно сделать? Тем более я даже не знаю какие там события


 
Deka ©   (2005-12-28 13:00) [6]

Это просто предположение. Исходники есть? Изучай как работает стандратный скрол.


 
Deka ©   (2005-12-28 16:53) [7]

Господа, у меня идея! Надо сделать один грид с разделителями (или колонками - как хотите) а горизонтальный скролинг для каждой колонки реализоватьпрограммно. Т.е. под каждой колонкой разместить скролбар а строки для грида формировать составляя их из трех обычных строк. Немного усложняется код, зато все в подряке с синхронизацией. Ваше мнение?


 
Prohodil Mimo ©   (2005-12-28 20:43) [8]

я когдато давно делал так : у всех гридов (TStringGrid) убрал верт. скролы, а вместо них повесил один TScrollBar, общий для всех, и на его события повесил управление гридами.

Делал нечто для сравнения содержимого двух файлов.


 
Desdechado ©   (2005-12-28 22:51) [9]

а если попробовать в одном гриде, но имитировать фиксированные колонки принудительной программной их перестановкой при горизонтальном скроллинге
типа, лезем вправо - колонки "подползают" под "фиксированные"
лезем влево, колонки кыползают из-под фиксированных
это визуально
а в коде просто номера фиксированных колонок увеличивать или уменьшать


 
MaxY   (2006-01-07 13:09) [10]

Всем спасибо за советы.
Я нашел самое простое решение 8))
Весьма интересный компонент этот, cxGrid. Сколько его не использую всегда есть такое, чего еще применял. Вот и теперь. У TcxGridTableView нашел свойство Controller, а у него есть свойство TopRecordIndex. Вот его изменение и производишь в вышеназванном обработчике onTopRecordIndexChanged.
И все решение тупо сводится к
grvTable1.Controller.TopRecordIndex := grvTable2.Controller.TopRecordIndex;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
1-1136205542
Pavel_sib
2006-01-02 15:39
2006.02.05
Отображение WEB-страниц на форме.Need help


4-1132453837
Relaxxx
2005-11-20 05:30
2006.02.05
Корректоное отображение 32-битных иконок(с alpha-каналом) на кно


6-1130155121
irishka001
2005-10-24 15:58
2006.02.05
Удалить письмо с почты


4-1133048587
jTommy
2005-11-27 02:43
2006.02.05
SetFilePointer не перемещает указатель файла за 2Гб


1-1135797029
deamon_t
2005-12-28 22:10
2006.02.05
Алгоритм захвата экрана





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский