![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Господа, как можно "привязать" к TTreeNode номер записи
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]Что положит, то и увидит...