собсно, возможен ли сабж?
на клавиатуре реализуется через перехват клавиш (например ctrl+up ctrl+down), и удалением-вставкой выделенной строки на позицию выше-ниже.
а вот мышом такое возможно на таблицах идущих в комплекте? в принципе отследить нажатие и удержание кнопки на мыши можно, а вот как определить, над какой строкой находится курсор?
Этот топик читают: Гость
Ответов: 499
Рейтинг: 1
|
|||
карма: 0 |
|
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
HikeR, юзай StringTableMT, там такая возможность есть, выдает адрес ячейки (строка, столбец) по клику мыша.
|
|||
карма: 22 |
|
Ответов: 3851
Рейтинг: 159
|
|||
а как определить положение мыша - между какими строчками вставлять? Использование размера шрифта мне кажется сомнительным..
|
|||
карма: 0 |
|
Ответов: 499
Рейтинг: 1
|
|||
nesco писал(а): выдает адрес ячейки (строка, столбец) по клику мыша.выдает, не спорю. но я имел ввиду аналог HeaderDragDrop для строк. |
|||
карма: 0 |
|
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
Мдяяя уж... Чем дальше в лес, тем толще партизаны (с)
Ну так возми, да сделай на штатных компонентах Мне что, в этой замученной таблице, еще и DragDrop строк с AlphaBlending'ом замутить, нет уж... увольте-с. |
|||
карма: 22 |
|
Ответов: 499
Рейтинг: 1
|
|||
nesco писал(а): Ну так возми, да сделай на штатных компонентахнечем. таблица не отдает строку над которой находится курсор. также она не отдает высоту строки в пикселях, по которой можно было бы вычислить строку под курсором по высоте всей таблицы. хотя TrackSelect прекрасно определяет и выделяет. из него нельзя вывести индекс строки? |
|||
карма: 0 |
|
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
HikeR писал(а): таблица не отдает строку над которой находится курсор |
|||
карма: 22 |
|
Ответов: 499
Рейтинг: 1
|
|||
чтобы понять, куда вставить строку при отпускании кнопки.
------------ Дoбавленo: теория: 1 выделяю строку, которую хочу перетащить 2 зажимаю кнопку 3 перемещаю мышь выше-ниже 4 в момент отпускания кнопки выделенная строка вставляется перед той, над которой отжали кнопку. |
|||
карма: 0 |
|
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
Я понял для чего ты хотел -- мышь над пунктом, но, к сожалению , MousUp не работает над пунктами, и по-этому -- это реализовать не так просто, только по координатам. Ха, но можно и по координатам, если подумать.
------------ Дoбавленo: HikeR, вы все меня задолбали. Ровно пять минут надо было, чтобы исследовать смещения и нарисовать определение пунктов под мышью. Вы когда головой начнете думать Вот схема, и не говори больше мне, что это -- невозможно и сложно
|
|||
карма: 22 |
|
Ответов: 499
Рейтинг: 1
|
|||
скажу только одно. от такого способа я сразу отказался. достаточно увеличить содержимое таблицы по вертикали до появления скроллбара, чтобы понять неработоспособность данного метода. он считает только видимую часть таблицы.
------------ Дoбавленo: и все же, из TrackSelect-а нельзя что-то взять? как он выделяет строку под курсором? |
|||
карма: 0 |
|
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
HikeR, на вот тебе ссылку на обновление StringTableMT до версии 6.60 (добавлены три точки -- TopItem, PerPage и ItemAtPos (только отстань, а то достала меня эта таблица ))
[svn]StringTableMT.pas[/svn] и пример определения пункта под курсором в двух вариантах под новую версию
|
|||
карма: 22 |
|
Ответов: 499
Рейтинг: 1
|
|||
вот пример с обычной таблицей. перетаскивание строк работает, но только в начале таблицы:
code_8623.txt вот где не хватает страничной части, что-ли. то есть какой индекс у первой видимой строки ------------ Дoбавленo: упс... уже все есть оказывается, обновить страницу я и забыл перед отправкой ;) вот ItemAtPos - это именно то, чего не хватало. народ очень и очень благодарен ;) ------------ Дoбавленo: ну вот теперь доработанный пример перетаскивания строк с новой StringTableMT:
|
|||
карма: 0 |
| ||
файлы: 1 | code_8623.txt [3.7KB] [140] |
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
HikeR, обновись с SVN. Я убрал верхние точки, теперь ItemAtPos использует родительские переменные Ms.X & Ms.Y для координат, и ему не нужны внешние данные. Твой пример при загрузке скажет, что не найдена точка PosY, но будет прекрасно работать и без нее.
|
|||
карма: 22 |
|
Ответов: 499
Рейтинг: 1
|
|||
"и сказал Он, это хорошо" (с)
|
|||
карма: 0 |
|
Ответов: 3851
Рейтинг: 159
|
|||
Пример "таскания" строк в следующем дистрибе будет?
|
|||
карма: 0 |
|