Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

На форме исчезает 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;  ///

чозахрень здесь написана.


Наверх

Титульная страница Поиск, карта сайта Написать письмо