Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
Внизуказатель на позицию курсора DataSet Найти похожие ветки
← →
Ega23 © (2005-05-24 12:56) [0]Делаю компонент TDBTreeView.
При добавлении узлов в дерево необходимо связать каждый узел с соответствующим ему рекордом из набора данных.
Самое простое решение - заводить p:PInteger, прописывать в него значение ключевого поля (p^:=FieldByName(KeyField).AsInteger) и присваивать этот указатель узлу (Node.Data:=p), а потом через Locate бегать по набору данных.
А можно ли каким-то образом получить указатель на позицию курсора в DataSet и уже его прописать в Node.Data?
← →
Digitman © (2005-05-24 12:59) [1]а закладки-то на что ?
как раз на то самое они и существуют
← →
Ega23 © (2005-05-24 13:00) [2]Да, вот ещё один вариант: создавать на каждую запись BookMark и уже её хранить в Node.Data.
Но набор данных внишний, с ним может ещё кто-то работать и также создавать свои букмарки...
В общем, посоветуйте вариант: что лучше?
← →
begin...end © (2005-05-24 13:00) [3]> Ega23 © (24.05.05 12:56)
> p^:=FieldByName(KeyField).AsInteger
А память под p ты сам выделять будешь?
← →
Ega23 © (2005-05-24 13:01) [4]А память под p ты сам выделять будешь?
Естесственно. Сам выделять, сам удалять.
← →
begin...end © (2005-05-24 13:03) [5]> Ega23 © (24.05.05 13:01) [4]
Node.Data := Pointer(FieldByName(KeyField).AsInteger)
И не надо ничего ни выделять, ни удалять.
← →
Ega23 © (2005-05-24 13:05) [6]Node.Data := Pointer(FieldByName(KeyField).AsInteger)
А остальные поля? Мне же надо и к остальным полям доступ получить. Т.е. принудительно курсор на конкретную запись сдвинуть.
← →
Digitman © (2005-05-24 13:13) [7]
> набор данных внишний, с ним может ещё кто-то работать и
> также создавать свои букмарки
что значит "внешний" ? в смысле - где-то в текущем процессе созданный и в дан.момент, будучи уже где-то созданным, используемый ?
доступ к НД, единожды открытому в конкретном трэде, допускает только последовательные обращения к нему
ВремЗакладка = НД.GetBookmark;
try
.. НД.GotoBookmark(НужнаяЗакладка);
finally
НД.GotoBookmark(ВремЗакладка);
НД.FreeBookmark(ВремЗакладка);
end;
← →
Ega23 © (2005-05-24 13:26) [8]что значит "внешний" ? в смысле - где-то в текущем процессе созданный и в дан.момент, будучи уже где-то созданным, используемый ?
Стоп. А закладка создаётся в контексте DataSet"а, или в контексте класса, использующего этот DataSet?
← →
Digitman © (2005-05-24 13:30) [9]закладка создается объектом класса-наследника TDataSet.
ты ведь всегда именно к конкретному объекту, создающему НД, обращаешься с методами, работающими с закладками !
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c