Casa
Top.Mail.Ru Yandeks.Metrika
Fórum: "Iniciantes";
Arquivo atual: 2018.11.04;
Download: [xml.tar.bz2];

Para baixo

Pergunta no TTreeView. Encontre agências semelhantes


Drowsy ©   (2016-09-06 20:15) [0]

SourceIbXTreeView é um descendente do TTreeView.
// Mova o SourceIbXTreeView do formulário principal para o formulário de entrada. SavedOwner: = SourceIbXTreeView.Owner; SavedOwner.RemoveComponent (SourceIbXTreeView); F_objred.InsertComponent (SourceIbXTreeView); SourceIbXTreeView.Parent: = F_objred.Panel5; ====> Вот здесь (при смене парента), вызывается удаление всех нодов. У обработчик удаления выглядит так : procedure TIBXTreeView_Pure.DelNode(Sender: TObject; Node: TTreeNode); Var SpecialData : TItemRec; begin if Assigned(Node) then if Assigned(Node.Data) then begin SpecialData:=Node.Data; SpecialData.Free; SpecialData:=nil; Node.Data:=nil; ==> Вот здесь не происходит обнуления Node.Data end; end;

2 da pergunta:
1) por que ao alterar um nó pai é excluído?
2) por que o Node.Data não é redefinido?

Obrigado.




Drowsy ©   (2016-09-15 02:04) [1]

?



iop ©   (2016-09-15 10:59) [2]

2 da pergunta:
1) por que ao alterar um nó pai é excluído?
2) por que o Node.Data não é redefinido?


1. ao alterar um pai, nenhum nó é excluído.
2. porque você tem um design de programa herético



Drowsy ©   (2016-09-20 03:37) [3]


> 1. ao alterar um pai, nenhum nó é excluído.
> 2. porque você tem um design de programa herético




No formulário está o painel 2 e o botão no primeiro painel é uma árvore. Por botão, movo a árvore para outro painel. Ao alterar um pai, o evento de exclusão de nós é gerado.

unidade UnitTmp; interface usa Windows, Mensagens, SysUtils, Variantes, Classes, Gráficos, Controles, Formulários, Diálogos, StdCtrls, ComCtrls, ExtCtrls; tipo TForm1 = classe (TForm) Panel1: TPanel; TreeView1: TTreeView; Panel2: TPanel; Button2: TButton; procedimento Button2Click (Sender: TObject); procedimento TreeView1Deletion (Remetente: TObject; Node: TTreeNode); particular {Declarações particulares} público {Declarações públicas} fim; var Form1: TForm1; implementação {$ R * .dfm} procedimento TForm1.Button2Click (Sender: TObject); var TmpTree: TTreeView; começar TmpTree: = TreeView1; TreeView1.Owner.RemoveComponent (TreeView1); Panel2.InsertComponent (TmpTree); TmpTree.Parent: = Panel2; // <- aqui o TreeView1Deletion é chamado para todos os nós da árvore. fim; procedimento TForm1.TreeView1Deletion (Remetente: TObject; Node: TTreeNode); começar // OnDeletion - Gerado quando uma árvore de Nó é excluída para cada Nó que é excluído. // O parâmetro “Nó” contém o nó que está sendo excluído. // Assim, usar esse evento é conveniente, por exemplo, // antes de excluir o nó, destrua os dados associados a ele, // se houver, estão contidos em sua propriedade Data, etc. fim; fim.



iop ©   (2016-09-20 09:03) [4]

ao alterar um pai, nenhum nó é excluído.



iop ©   (2016-09-20 09:06) [5]

TForm1.Button1Click (Remetente: TObject);
f: TFotm;
começar
f: = TForm2.Create (aplicativo);
TreeView1.Parent: = f;
end;

você clica no botão cem vezes - cem vezes o trivium muda o pai e não perde um único nó.
embora você não possa cem, mas mil vezes.



Drowsy ©   (2016-09-20 10:04) [6]


> iop © (20.09.16 09: 06) [5]


cutucou cem, depois mil.
agora você:

crie um evento Tree.onDeletion e defina um ponto de interrupção nele.
procedimento TForm1.TreeView1Deletion (Remetente: TObject; Node: TTreeNode); começar // OnDeletion - Gerado quando uma árvore de Nó é excluída para cada Nó que é excluído. // O parâmetro “Nó” contém o nó que está sendo excluído. // Assim, usar esse evento é conveniente, por exemplo, // antes de excluir o nó, destrua os dados associados a ele, // se houver, estão contidos em sua propriedade Data, etc. fim;



iop ©   (2016-09-20 10:05) [7]

mais uma vez para os pogromistas:
ao alterar um pai, nenhum nó na exibição é excluído.



Drowsy ©   (2016-09-20 19:53) [8]


> iop © (20.09.16 10: 05) [7]

Se o evento Tree.onDeletion for definido, quando o pai mudar, ele será chamado. Você concorda?



iop ©   (2016-09-20 20:57) [9]

ao mudar um pai
evento é acionado
nós não são excluídos.



iop ©   (2016-09-20 21:11) [10]

e não é chamado em qualquer lugar quando se muda um pai.

no HE8, nenhum OnDeletion é chamado ao alterar um pai.

TTVExpandedEvent é usado para responder a notificações de eventos que ocorrem nos nós de um controle de exibição em árvore. É um genérico manipulador de eventos para vários eventos que notificam a exibição em árvore de algo que aconteceu com um nó.

Remetente é o controle de exibição em árvore que contém o nó que é o foco da notificação.

Nó é o item que foi expandido, colapso, excluído, ou que é sobre ser desenhado.

isto é nas versões anteriores, é possível que, em qualquer espirro da árvore, todos os manipuladores do tipo TTVExpandedEvent tenham sido chamados em massa, independentemente do que realmente aconteceu lá.



Страницы: 1 filial inteira

Fórum: "Iniciantes";
Arquivo atual: 2018.11.04;
Download: [xml.tar.bz2];

em cima





Memória: 0.59 MB
Hora: 0.013 c
2-1473336347
Anna
2016-09-08 15:05
2018.11.04
Pedido para o número de procedimentos armazenados


2-1473404951
Valya
2016-09-09 10:09
2018.11.04
Ponteiros


2-1474184193
Alex Serov
2016-09-18 10:36
2018.11.04
Como abrir a tabela do Excel com senha?


2-1473182108
Sonolento
2016-09-06 20:15
2018.11.04
Pergunta no TTreeView.


2-1473936376
lewka
2016-09-15 13:46
2018.11.04
transferir pressionamentos de tecla para aplicativos de terceiros





afrikaans albanês Arabic armênio azerbaijano basco belarusian Bulgarian catalão Chinês simplificado) Chinês tradicional) croata checo dinamarquês Dutch Inglês estoniano filipino Finnish French
Galego georgiano German grego crioulo haitiano hebraico hindi húngaro islandês Indonesian irlandês Italian Japanese Korean letão lituano macedónio Malay maltês Norwegian
persa polonês Portuguese Romeno Russa sérvio Slovak esloveno Espanhol swahili sueco tailandês turco ucraniano urdu vietnamita galês ídiche bengali bósnio
cebuano esperanto gujarati hausa hmong igbo javanês kannada khmer lao latino maori marata mongol Nepali punjabi somali tâmil telugu yoruba
zulu
Английский francês Alemão Italiano Португальский russo Espanhol