Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Anfänger";
Aktuelles Archiv: 2018.11.04;
Herunterladen: [xml.tar.bz2];

Nach unten

Frage zu TTreeView. Finden Sie ähnliche Zweige


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

SourceIbXTreeView ist ein Nachkomme von TTreeView.
// SourceIbXTreeView aus dem Hauptformular in das Eingabeformular verschieben. 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-Fragen:
1) Warum werden beim Ändern eines übergeordneten Knotens diese gelöscht?
2) Warum werden Node.Data nicht zurückgesetzt?

Vielen Dank.




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

?



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

2-Fragen:
1) Warum werden beim Ändern eines übergeordneten Knotens diese gelöscht?
2) Warum werden Node.Data nicht zurückgesetzt?


1. Beim Ändern eines übergeordneten Elements werden keine Knoten gelöscht.
2. weil Sie ein ketzerisches Programmdesign haben



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


> 1. Beim Ändern eines übergeordneten Elements werden keine Knoten gelöscht.
> 2. weil Sie ein ketzerisches Programmdesign haben




Auf dem Formular befindet sich das 2-Bedienfeld und die Schaltfläche im ersten Bedienfeld ist eine Baumstruktur. Per Button verschiebe ich den Baum auf ein anderes Panel. Beim Ändern eines übergeordneten Elements wird das Ereignis des Löschens von Knoten ausgelöst.

unit UnitTmp; Schnittstelle verwendet Windows, Nachrichten, SysUtils, Varianten, Klassen, Grafiken, Steuerelemente, Formulare, Dialoge, StdCtrls, ComCtrls, ExtCtrls; Typ TForm1 = Klasse (TForm) Panel1: TPanel; TreeView1: TTreeView; Panel2: TPanel; Button2: TButton; procedure Button2Click (Sender: TObject); procedure TreeView1Deletion (Absender: TObject; Knoten: TTreeNode); privat {Private Erklärungen} Öffentlichkeit {Öffentliche Erklärungen} Ende; var Form1: TForm1; Implementierung {$ R * .dfm} procedure TForm1.Button2Click (Sender: TObject); var TmpTree: TTreeView; beginne TmpTree: = TreeView1; TreeView1.Owner.RemoveComponent (TreeView1); Panel2.InsertComponent (TmpTree); TmpTree.Parent: = Panel2; // <- hier wird die TreeView1Deletion für alle Knoten des Baumes aufgerufen. Ende; procedure TForm1.TreeView1Deletion (Absender: TObject; Knoten: TTreeNode); beginne // OnDeletion - Wird generiert, wenn für jeden Knoten, der gelöscht wird, ein Knotenbaum gelöscht wird. // Der Parameter "Node" enthält den Knoten, der gelöscht wird. // Daher ist die Verwendung dieses Ereignisses praktisch, z. B. // Zerstöre vor dem Löschen des Knotens die ihm zugeordneten Daten. // falls vorhanden, sind in seiner Data-Eigenschaft usw. enthalten. Ende; ende.



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

Beim Ändern eines übergeordneten Elements werden keine Knoten gelöscht.



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

TForm1.Button1Click (Absender: TObject);
f: TFotm;
beginnen
f: = TForm2.Create (Anwendung);
TreeView1.Parent: = f;
end;

Sie klicken hundertmal auf die Schaltfläche - hundertmal ändert das Trivium das übergeordnete Element und verliert keinen einzelnen Knoten.
Sie können zwar nicht hundert, sondern tausendmal.



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


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


stocherte hundert, dann tausend.
Jetzt du :

Erstellen Sie ein Tree.onDeletion-Ereignis, und legen Sie darin einen Haltepunkt fest.
procedure TForm1.TreeView1Deletion (Absender: TObject; Knoten: TTreeNode); beginne // OnDeletion - Wird generiert, wenn für jeden Knoten, der gelöscht wird, ein Knotenbaum gelöscht wird. // Der Parameter "Node" enthält den Knoten, der gelöscht wird. // Daher ist die Verwendung dieses Ereignisses praktisch, z. B. // Zerstöre vor dem Löschen des Knotens die ihm zugeordneten Daten. // falls vorhanden, sind in seiner Data-Eigenschaft usw. enthalten. Ende;



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

Noch einmal für die Pogromisten:
Beim Ändern eines übergeordneten Elements werden keine Knoten in der Ansicht gelöscht.



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


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

Wenn das Tree.onDeletion-Ereignis definiert ist, wird es aufgerufen, wenn sich das übergeordnete Element ändert. Stimmst du zu



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

beim Wechseln eines Elternteils
Ereignis wird ausgelöst
Knoten werden nicht gelöscht.



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

und es wird nicht überall aufgerufen, wenn ein Elternteil geändert wird.

In HE8 wird beim Ändern eines übergeordneten Elements überhaupt kein OnDeletion aufgerufen.

TTVExpandedEvent wird verwendet, um auf Benachrichtigungen von Ereignissen zu reagieren, die an den Knoten eines Tree View-Steuerelements auftreten. Es ist ein Generika Ereignishandler für verschiedene veranstaltungen das benachrichtigt die Baumansicht von etwas, das zu einem Knoten passiert ist.

Der Absender ist das Strukturansicht-Steuerelement, das den Knoten enthält, auf den sich die Benachrichtigung bezieht.

Knoten ist der Gegenstand, der gewesen ist ergänzt, zusammengebrochen, gelöscht, oder worum es geht gezeichnet werden.

d.h. In früheren Versionen ist es möglich, dass bei jedem Niesen in der Struktur alle Handler des Typs TTVExpandedEvent als Bulk aufgerufen wurden, unabhängig davon, was dort wirklich passiert ist.



Seiten: 1 ganze Branche

Forum: "Anfänger";
Aktuelles Archiv: 2018.11.04;
Herunterladen: [xml.tar.bz2];

nach oben









Speicher: 0.6 MB
Zeit: 0.019 c
2-1473336347
Anna
2016-09-08 15:05
2018.11.04
Anfrage für die Anzahl der gespeicherten Prozeduren


2-1474206922
KropotkinGosha
2016-09-18 16:55
2018.11.04
Der Code in der Funktion wird nicht ausgeführt


2-1473182108
Schläfrig
2016-09-06 20:15
2018.11.04
Frage zu TTreeView.


2-1473395811
Abcdef123
2016-09-09 07:36
2018.11.04
CreateProcess verwenden. Wie zeigt man die gewünschte Form nach


2-1473936376
Lewka
2016-09-15 13:46
2018.11.04
Übertragen von Tastatureingaben an Anwendungen von Drittanbietern





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Swedish Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu Yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch