Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.06.2003, 18:26
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
Люди, я наверно уже туплю под вечер, но как мне сохранить в TTreeNode, занчение поля (ключа)? Не создавать же свой класс с этим свойством.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 18:31
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
TreeView.Items.BeginUpdate; try with TreeView.Items.AddObject( nil, FieldByName( 'FaceName' ).AsString, Pointer( FieldByName( 'FaceID' ).AsInteger ) ) do begin ImageIndex := FieldByName( 'ImageIndex' ).Value; SelectedIndex := FieldByName( 'SelectedIndex' ).Value; end; finally TreeView.Items.EndUpdate; end; TreeView.Items.BeginUpdate; try with TreeView.Items.AddChildObject( GroupsNode, ClientDataSet.FieldByName( 'FaceName' ).AsString, Pointer( ClientDataSet.FieldByName( 'FaceID' ).AsInteger ) ) do begin ImageIndex := ClientDataSet.FieldByName( 'ImageIndex' ).AsInteger; SelectedIndex := ClientDataSet.FieldByName( 'SelectedIndex' ).AsInteger; end; finally TreeView.Items.EndUpdate; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 18:34
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
Никак, IMHO. А какие проблеммы с классом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 18:37
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
2Hammer Ну твой вариант конечно работает, но проблема в том, что дерево с картинками, т.е эти свойства в классе заняты.. 2pkarklin Да в принципе ни каких, просто хотелся обойтись без этого.. В VB есть просто свойства для хранения юзерских данных, вот я и подумал что в Delphi это тоже есть, но где то глубоко зарыто -)) (что делать, чайник я в Delphi) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 18:42
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
Да ни че у Hammer не занято, он пишет значение идентификатора в свойство Data у TTreeNode, приводя integer к pointer. Вот тока при чтении тоже надо будет обратно приводить. Как я сам до этого не допер. Век живи век учись. :-)Может по тому, что тока 1 идентификатор в ветке никогда не хранил, всегда класс с несколькими полями нужен был. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 18:42
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
Дык убери хрень по поводу картинок и усе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 18:49
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
Спасибо! Все понял, туплю -)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 18:59
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
to pkarklin А кто мешает засунуть в свойство Data весь класс целиком? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 19:06
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
2 Hammer А кто мешает засунуть в свойство Data весь класс целиком? Так я туда ссылку на экземляр класса и засовывал всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.06.2003, 19:28
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
to pkarklin Стоп, стоп, стоп. Я давно мучаюсь вопросом типа: есть DataSet, у него есть FieldValues[..] А как их усе засунуть в Data TreeView? Что нибудь типа: type TMyClass = class( TObject ); public construcrir Create; destrustor Destroy; property Value: Variant read FValue write SetValue; end; procedure TForm.BtnClick( .. ) var MyClass: TMyClass; FieldsNames : TStringList; FieldsList: String; i: Integer; begin FieldsNames := TStringList.Create; DataSet.GetFieldNames(FieldsNames); FieldsList := FieldsNames.CommaText; FieldsNames.Free; for i := 0 to Length(FieldsList) do if FieldsList = ',' then FieldsList := ';'; DataSet.First; while not DataSet.Eof do begin MyClass := TMyClass.Create; MyClass.Value := DataSet.FieldValues[FieldsList]; TreeView.Items.AddObject( nil, DataSet.FieldByName( 'FaceName' ).AsString, MyClass) ; MyClass.Free; DataSet.Next; end; end; Так выйдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.06.2003, 08:20
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
2 Hammer Код: plaintext Вот это вот убери. А то что получается. Ты создал экземпляр класса, ссылку на него сохранил в свойстве TTreeNode.Data, а потом уничтожил его. Т.о TTreeNode.Data после исполнения твоего кода указывает в никуда и тебя ждет AV. И самое главное, не забывай уничтожать все экзмепляры, которые ты насоздавал когда они уже не нужны, например, при закрытии формы. Само TTreeView этого не делает. Ну примерно так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.06.2003, 12:42
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
Закрытие формы это при вызове Close? В этом случае происходит уничтожение формы и всех контролов, которые находятся на ней. Так при уничтожении контрола TreeView он уничтожает все свои ноды и если надо освобождать память из TTreeNode.Data, то это можно делать в обработчике TreeViewDeletion(Sender: TObject; Node: TTreeNode); Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.06.2003, 12:54
|
|||
|---|---|---|---|
И снова о TreeView -)) |
|||
|
#18+
2 SmaLL Можно и так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2117967]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 392ms |

| 0 / 0 |
