Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Drag&Drop между двумя StringGrid'ами; не выделяется ячейка источника

48K
17 сентября 2010 года
Rio9
16 / / 28.10.2009
Имеется два StringGrid'а (пусть будет источник Grid1 и приемник Grid2). Нужно реализовать Drag&Drop строк из одного в другой.

Делаю так:
у Grid1:
DragMode = dmAutomatic;

у Grid2:

Код:
void __fastcall TmyClass::Grid2DragOver(TObject *Sender, TObject *Source,
      int X, int Y, TDragState State, bool &Accept)
{
   Accept = Source == Grid1;
}

void __fastcall TmyClass::Grid2DragDrop(TObject *Sender, TObject *Source,
      int X, int Y)
{
  int ACol, ARow;
  Grid2->MouseToCell( X, Y, ACol, ARow);
  Grid2->Cells[ACol][ARow] = Grid1->Cells[1][Grid1->Row];
}


сам процесс перетаскивания работает, кроме одного момента.
При нажатии кнопки мыши над первым гридом, не выделяется ячейка, над которой нажата кнопка.
Как решить?
14
17 сентября 2010 года
Phodopus
3.3K / / 19.06.2008
Вообще не выделяется, или при начале перетаскивания? И не выделяется как - Select или Focus?
48K
17 сентября 2010 года
Rio9
16 / / 28.10.2009
Вообще не выделяется.
Стоит нажать левую кнопку мыши на первом гриде - курсор сразу принимает вид DrugCursor.

Видимо это называется Select, потому что при перетаскивании на второй грид в любом случае перетаскивается Cells[1][0], то есть ячейка первой строки, а не выбранной.

Я так понимаю в каком-то событии нужно явно указать где менять выбранную строку. Не могу только понять где...
14
17 сентября 2010 года
Phodopus
3.3K / / 19.06.2008
Тогда вам надо делать dmManual DragDrop и отлавливать "желания" пользователя перетащить или выделить диапазон самостоятельно.
1
17 сентября 2010 года
kot_
7.3K / / 20.01.2000
и возможно (нет просто времени проверять что имеет ввиду автор) возможно надо установить свойство HideSelection в false
48K
17 сентября 2010 года
Rio9
16 / / 28.10.2009
Цитата: Phodopus
Тогда вам надо делать dmManual DragDrop и отлавливать "желания" пользователя перетащить или выделить диапазон самостоятельно.



А как это сделать? Я первый раз пытаюсь реализовать Drag and Drop, подскажите, если не тяжело.

1
18 сентября 2010 года
kot_
7.3K / / 20.01.2000
Ознакомтесь пожалуйста с соотвествующими разделам справки. Эта тема там вполне достаточно освещена - форум не является заменой Ф1 - и размещение подобных вопросов являкется здесь нарушением.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог