![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с DATA
PSPF2003 © (2006-06-29 11:28:00)День добрый.
Есть вот такая конструкция:
type
TDescription=class
Name : String[255];
Description : TStrings;
constructor Create;
destructor Destroy; override;
end;
constructor TDescription.Create;
begin
Description := TStringList.Create;
end;
destructor TDescription.Destroy;
begin
Description.Free;
inherited;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Node : TTreeNode;
Opis : TDescription;
begin
Opis := TDescription.Create;
Opis.Name := 'Name';
Opis.Description.Add('Description');
Node := TTreeNode.Create(TreeView1.Items);
Node.Data := Opis;
TreeView1.Items.Add(Node, 'Node');
end;
И в следующей процедуре происходит ошибка (Access Violation)
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
Edit1.Text := TDescription(Node.Data).Name ;
Memo1.Lines.Assign(TDescription(Node.Data).Description);
end;
Почему не могу понять Если кто знает в чем я ошибся подскажите.
Ega23 (2006-06-29 11:45:00) [21]
> Неа, он присваивает Data одному TTreeNode, в TreeView создаёт
> ещё один узел, по типу и на уровне, перед этим созданного.
> А читать Data пытается вообще не понятно у какого узла.
>
Здесь как раз, вроде, всё в порядке.
Автор, на какой строке у тебя AV выпадает?
PSPF2003 (2006-06-29 11:44:00) [22]
> Плохиш ©
А как правильно нужно?
Плохиш (2006-06-29 11:40:00) [23]
> Ega23 © (29.06.06 11:32) [2]
Неа, он присваивает Data одному TTreeNode, в TreeView создаёт ещё один узел, по типу и на уровне, перед этим созданного. А читать Data пытается вообще не понятно у какого узла.
Ega23 (2006-06-29 11:32:00) [24]
Description : TStringList;
Плохиш (2006-06-29 11:31:00) [25]
Node := TreeView1.Items.Add(nil, 'Node');
Node.Data := Opis;