Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1116577335
_RusLAN
2005-05-20 12:22
2005.06.06
Delphi World 6.0 со всеми базами и сразу. Скачать


4-1113702410
__blok
2005-04-17 05:46
2005.06.06
Чем читать виндовые шары


1-1116501791
Shredder
2005-05-19 15:23
2005.06.06
Преобразование: строка -> число


8-1108743803
pasha L
2005-02-18 19:23
2005.06.06
Вставка gif а


14-1116372170
Петр
2005-05-18 03:22
2005.06.06
Утечка памяти





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский