Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Господа, как можно "привязать" к TTreeNode номер записи


Страницы:   1 2 3 4

mmms ©   (2005-07-11 08:52:00) 

Т.е. предположим есть ветка в TTreeView "Продукты", от нее дочерние ноды "Колбаса", "Хлеб" и т.п. Нужно, чтобы юзер кликнул на "Хлеб", узнать, какой ID записи у "Хлеб", TTreeView заполняю записями из БД. Можно ли TTreeNode заполнить кроме Значениямиещё и скрытые параметры у каждого значения, например как Tagу многих компанетов, и потом, при клике на строку, определять этот параметр, а там всего цифровой код товара (по нему далее вся работа и идет).

Или, как вариант, по LIKE определять ID выбранной строки, но это лишняя нагрузка на БД, т.к. даже скольжение по TTreeView создаст множество запросов к серверу... хотя конечно, ID методом LIKE, по названию, можно не постоянно определять при скольжении, а например при двойном клике не этом товаре.

Т.е. вопрос, можно ли как то рядом с позицией в TTreeView "вбивать" ее код.


mmms   (2005-07-19 15:08:00) [1]

Вот теперь дошло, спасибо!


msguns   (2005-07-19 15:05:00) [2]

отправил


msguns   (2005-07-19 15:05:00) [3]

Письмо получил, по указанному адресу отправил


mmms   (2005-07-19 14:27:00) [4]

Сергей (msguns), я написал вам письмом. Проверте пожалуйста.


msguns   (2005-07-19 12:02:00) [5]

лови


msguns   (2005-07-19 11:56:00) [6]

>alex_***   (19.07.05 10:55) [71]

Об этом мы ему и толкуем (см. приведенный выше код)

>mmms   (19.07.05 11:46) [73]

Какая версия архиватора ?
Щас пошлю нативные файлы


mmms   (2005-07-19 11:46:00) [7]

msguns
Я письма не получил по почте, может архив запароленный, или exe есть? На mail антивирусы это не пропускают, если не сложно перешлите еще раз на этот же адрес, worldsite2000@mail.ru
all
Я эту процедуру взял из FAQ, хотел "прикрутить" под свои нужды. Копирайт тоже есть, во втором посте. Все для меня подходит (формирование меню). Как автор ложит код в итем, я переделывать не стал.

Если можно по другому его туда писать, без переделки самого принципа, то хотелось бы написать. И добавить в FAQ рядом с этим кодом. Т.к. тот код ещё не мало вызовет вопросов у новичков.. Но факт тот, что выбрал имено его, так это простота формирования меню, и минимальный(!) код. Ну а то, что загвоздки с Data.. как ее тогда можно избежать?


Ega23   (2005-07-19 11:25:00) [8]

Вот именно. Чел использует св-во TTreeView.Items[].Data, грубо говоря по-идиотски, не понимая сути. Ты же упорно пытаешься научить его пользоваться именно таким методом, который предусматривает наличие в данных только одного значения какого-либо типа. Так, как ты советуешь, делать можно, конечно.
Но вот нужно ли ?


А ему честно сказал, что всё это по-идиотски. И не только я. Дальше - проблемы автора, ты не находишь?


alex_***   (2005-07-19 10:55:00) [9]

Не проще держать в Data указатель на объект с данными, а список объектов вести в TObjectList?


msguns   (2005-07-19 10:43:00) [10]

>Ega23 ©   (19.07.05 10:36) [69]
>Ну я же не виноват, что он этот указатель туда по-идиотски кладёт. Я о том, что он ХОЧЕТ туда положить.

Вот именно. Чел использует св-во TTreeView.Items[].Data, грубо говоря по-идиотски, не понимая сути. Ты же упорно пытаешься научить его пользоваться именно таким методом, который предусматривает наличие в данных только одного значения какого-либо типа. Так, как ты советуешь, делать можно, конечно.
Но вот нужноли ?


Ega23   (2005-07-19 10:36:00) [11]

2 evvcom ©   (19.07.05 08:36) [68]

Ну я же не виноват, что он этот указатель туда по-идиотски кладёт. Я о том, что он ХОЧЕТ туда положить.


evvcom   (2005-07-19 08:36:00) [12]


> Судя по теме, аффтар кладёт туда указатель на Integer.
> В чём проблема-то?

Может я чего не углядел, но в [2]
Tree.Items.Item[i].Data = Pointer(Query.FieldByName(idParent).asInteger)
я увидел единственное присваивание, и оно совсем не похоже на "кладет указатель". Вот в том-то и проблема, что автор игнорирует советы, что рассматривать чтение/запись надо в паре, но никак не по отдельности.


Ega23   (2005-07-18 17:39:00) [13]

То, что ты туда поклал. Судя по теме, аффтар кладёт туда указатель на Integer.
В чём проблема-то?


msguns   (2005-07-18 17:36:00) [14]

>Ega23 ©   (18.07.05 17:26) [65]

Ты мне не ответил на вопрос.
ЧТО лежит В tv.Items.Item[0].Data ?


Ega23   (2005-07-18 17:26:00) [15]

2 msguns ©   (18.07.05 17:21) [64]

var
p:PInteger;
begin
p:=PInteger(tv.Items.Item[0].Data);
ShowMessage(IntToStr(P^));
end;

А такая запись тебя не смущает???


msguns   (2005-07-18 17:21:00) [16]

>Ega23 ©   (18.07.05 17:06) [63]
>Основание?

Для начала ты объясни мне, дураку, что делать вот с этим ?
PInteger(tv.Items.Item[0].Data)^))

Кому и для чего надо значение адресафиг знает чего ?


Ega23   (2005-07-18 17:06:00) [17]

2 Anatoly Podgoretsky ©   (18.07.05 17:03) [62]
А я сомневаюсь

Основание?


Anatoly Podgoretsky   (2005-07-18 17:03:00) [18]

Ega23 ©   (18.07.05 17:01) [61]
А я сомневаюсь


Anatoly Podgoretsky   (2005-07-18 17:01:00) [19]

Нифига, а увидит он 17


Ega23   (2005-07-18 17:01:00) [20]

Что положит, то и увидит...


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо