Главная страница
    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
1-1116514026
Oleg_
2005-05-19 18:47
2005.06.06
структуры в safearray реально?


4-1113303401
Stalker01
2005-04-12 14:56
2005.06.06
Скрыть папку


3-1114458697
DmitryMN
2005-04-25 23:51
2005.06.06
Права на базу Interbase


1-1116757807
acsoft
2005-05-22 14:30
2005.06.06
Popup menu


14-1116503539
VMcL
2005-05-19 15:52
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский