powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как переместить записи в древовидном DBGidEh
2 сообщений из 2, страница 1 из 1
как переместить записи в древовидном DBGidEh
    #36504694
lnfs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поля в таблице ID, ID_PARENT, NAME итд
Если ID_PARENT меняем, запись соответственно перемещается, но я не хочу чтоб пользователь видел это поле.
Нужно чтоб он перемещаемую запись мышкой перетащил.
Есть вродебы нужное действие и событие генерируется
Код: plaintext
1.
2.
3.
4.
 function  TForm1.DBGridEh1MoveRecords(Sender: TObject;
  BookmarkList: TStrings;         // всегда пустой :-( 
  ToRecNo: Integer;               // указывает номер записи в дереве по счёту начиная сначала, не считая ветви в свёрнутых узлах :-( 
  TreeLevel: Integer;             // показывает правильный уровень :-) 
  CheckOnly: Boolean): Boolean;  // всегда истинна, при бросании всегда фальш :-(
В итоге работает ненужный на данный момент мне номер уровня.
Я ожидал получить ID переносимой записи и ID принимающей, сделать проверки, и возможно сменить ID, но тут какая-то другая логика.
Научите как ветвь из одного узла мышкой перетащить в другой узел.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как переместить записи в древовидном DBGidEh
    #39671044
alexquentin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответ на официальном сайте EhLib:

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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
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;
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как переместить записи в древовидном DBGidEh
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]