![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
На форме исчезает TreeView
Pushok © (2011-09-07 12:11:00)На главной форме лежит TTreeView. посл выполнения следуюшего кода TreeView с главной формы почемуто исчезает:
var
F: TForm;
tv:TTreeView;
bt1, bt2: TButton;
P: TPAnel;
begin
F:= TForm.Create(Form1);
...
tv:= TTreeView.Create(F);
tv:= TreeView1; ///
tv.Align:= alClient;
tv.Parent:= F;
F.Width:= 500;
F.Height:= 400;
F.ShowModal;
end;
Почему исчезает TreeView?
DiamondShark (2011-09-07 17:32:00) [1]
> stas © (07.09.11 13:58) [11]
> Только имей ввиду что это указатель, а не новая копия.
Тора учит нас другойму:
procedure TCustomTreeView.SetTreeNodes(Value: TTreeNodes);
begin
Items.Assign(Value);
end;
procedure TTreeNodes.Assign(Source: TPersistent);
var
TreeNodes: TTreeNodes;
MemStream: TMemoryStream;
begin
ClearCache;
if Source is TTreeNodes then
begin
TreeNodes := TTreeNodes(Source);
Clear;
MemStream := TMemoryStream.Create;
try
TreeNodes.WriteData(MemStream);
MemStream.Position := 0;
ReadData(MemStream);
finally
MemStream.Free;
end;
end
else inherited Assign(Source);
end;
stas (2011-09-07 13:58:00) [2]Ega23 © (07.09.11 12:57) [7]
А он имел ввиду с той на которой изначально расположено - с той исчезло.
Pushok (07.09.11 13:27) [10]
Только имей ввиду что это указатель, а не новая копия.
Pushok (2011-09-07 13:27:00) [3]Все оказалась проще
tv:= TTreeView.Create(F);
tv.Align:= alClient;
tv.Parent:= F;
tv.Items:= TreeView1.Items;
Медвежонок Пятачок (2011-09-07 13:05:00) [4]хотелось перенести - так ты и перенес.
в чем проблема-то?
Pushok (2011-09-07 13:00:00) [5]
> tv:= TreeView1;
Этиим хотелось перенести все дерево.
есть идея бегать в цикле по TreeView1 и создавать спомошью tv.Items.Add()
Ega23 (2011-09-07 12:57:00) [6]
> Ну а как это влияет на TreeView1 из главнй формы?
tv := TreeView1;
tv.Parent := F;
Это всё равно, чтоTreeView1.Parent := F;
Pushok (2011-09-07 12:55:00) [7]
> tv:= TTreeView.Create(F);
> tv:= TreeView1;
Да действительно это не имеет смысла
Ну а как это влияет на TreeView1 из главнй формы?
Ega23 (2011-09-07 12:45:00) [8]
> У меня не исчезает. Даже с Вашим кодом.
Должен исчезнуть.
Ибо:
tv:= TreeView1; ///
tv.Align:= alClient;
tv.Parent:= F;
stas (2011-09-07 12:27:00) [9]У меня не исчезает. Даже с Вашим кодом.
stas (2011-09-07 12:22:00) [10]Покажите полный код.
stas (2011-09-07 12:21:00) [11]Во-первых код противоречащий.
F:= TForm.Create(Form1);
...
tv:= TTreeView.Create(F);
tv:= TreeView1;
Какой смысл строчки выделенной жирным?
Медвежонок Пятачок (2011-09-07 12:21:00) [12]tv:= TTreeView.Create(F);
tv:= TreeView1; ///
чозахрень здесь написана.