Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
Люди, я наверно уже туплю под вечер, но как мне сохранить в TTreeNode, занчение поля (ключа)? Не создавать же свой класс с этим свойством.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:26 |
|
||
|
И снова о 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:31 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
Никак, IMHO. А какие проблеммы с классом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:34 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
2Hammer Ну твой вариант конечно работает, но проблема в том, что дерево с картинками, т.е эти свойства в классе заняты.. 2pkarklin Да в принципе ни каких, просто хотелся обойтись без этого.. В VB есть просто свойства для хранения юзерских данных, вот я и подумал что в Delphi это тоже есть, но где то глубоко зарыто -)) (что делать, чайник я в Delphi) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:37 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
Да ни че у Hammer не занято, он пишет значение идентификатора в свойство Data у TTreeNode, приводя integer к pointer. Вот тока при чтении тоже надо будет обратно приводить. Как я сам до этого не допер. Век живи век учись. :-)Может по тому, что тока 1 идентификатор в ветке никогда не хранил, всегда класс с несколькими полями нужен был. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:42 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
Дык убери хрень по поводу картинок и усе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:42 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
Спасибо! Все понял, туплю -)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:49 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
to pkarklin А кто мешает засунуть в свойство Data весь класс целиком? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:59 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
2 Hammer А кто мешает засунуть в свойство Data весь класс целиком? Так я туда ссылку на экземляр класса и засовывал всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 19:06 |
|
||
|
И снова о 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; Так выйдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 19:28 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
2 Hammer Код: plaintext Вот это вот убери. А то что получается. Ты создал экземпляр класса, ссылку на него сохранил в свойстве TTreeNode.Data, а потом уничтожил его. Т.о TTreeNode.Data после исполнения твоего кода указывает в никуда и тебя ждет AV. И самое главное, не забывай уничтожать все экзмепляры, которые ты насоздавал когда они уже не нужны, например, при закрытии формы. Само TTreeView этого не делает. Ну примерно так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 08:20 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
Закрытие формы это при вызове Close? В этом случае происходит уничтожение формы и всех контролов, которые находятся на ней. Так при уничтожении контрола TreeView он уничтожает все свои ноды и если надо освобождать память из TTreeNode.Data, то это можно делать в обработчике TreeViewDeletion(Sender: TObject; Node: TTreeNode); Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 12:42 |
|
||
|
И снова о TreeView -))
|
|||
|---|---|---|---|
|
#18+
2 SmaLL Можно и так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 12:54 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32185908&tid=2117967]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 376ms |

| 0 / 0 |
