Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 как переместить записи в древовидном DBGidEh  [new]
lnfs
Member

Откуда: иркутск
Сообщений: 10
Поля в таблице ID, ID_PARENT, NAME итд
Если ID_PARENT меняем, запись соответственно перемещается, но я не хочу чтоб пользователь видел это поле.
Нужно чтоб он перемещаемую запись мышкой перетащил.
Есть вродебы нужное действие и событие генерируется
function TForm1.DBGridEh1MoveRecords(Sender: TObject;
  BookmarkList: TStrings;        // всегда пустой :-(
  ToRecNo: Integer;              // указывает номер записи в дереве по счёту начиная сначала, не считая ветви в свёрнутых узлах :-(
  TreeLevel: Integer;            // показывает правильный уровень :-)
  CheckOnly: Boolean): Boolean;  // всегда истинна, при бросании всегда фальш :-(
В итоге работает ненужный на данный момент мне номер уровня.
Я ожидал получить ID переносимой записи и ID принимающей, сделать проверки, и возможно сменить ID, но тут какая-то другая логика.
Научите как ветвь из одного узла мышкой перетащить в другой узел.
5 мар 10, 12:19    [8436414]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: как переместить записи в древовидном DBGidEh  [new]
alexquentin
Member

Откуда:
Сообщений: 4
Ответ на официальном сайте EhLib:

Чтобы ограничить уровни, на которые можно перемещать элементы дерева, можно использовать код аналогичный следующему:

function TForm1.DBGridEh1MoveRecords(Sender: TObject; BookmarkList: TBMListEh;
  ToRecNo, TreeLevel: Integer; CheckOnly: Boolean): Boolean;
begin
// Разрешаем перетаскивать только на 2ой и 3ий уровень. (Записи верхнего уровня имеют TreeLevel=1)
  if (TreeLevel >= 2) and (TreeLevel <= 3) then
  begin
    // Используем функцию перетаскивания по умолчанию
    Result := DBGridEh1.DefaultMoveDataRows(BookmarkList, ToRecNo, TreeLevel, CheckOnly);
  end else
  begin
    Result := False; //Не разрешаем перетаскивать
  end;
end;
7 июл 18, 16:22    [21552200]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить