Autor Beitrag
Siluro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 74

Win XP Prof., Win XP64 Prof., Win 7 Prof.
Delphi 7 Ent., Delphi XE, Delphi XE5
BeitragVerfasst: Mo 14.03.05 18:57 
Hi,

ich habe ein kleines Problem. Ich hab mir eine Klasse geschrieben die auf TShape basiert.
Jetzt möchte ich diese Klasse an einen Eintrag in einem Treeview anhängen und rechts daneben anzeigen lassen.
Meine Frage ist jetzt eigentlich wie kann ich die Komponente so mit dem Treenode verbinden, dass sie
immer rechts neben dem Treenode angezeigt wird :?:

Hoffentlich kann mir jemand helfen.

Danke im Vorraus

Björn
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 15.03.05 11:27 
Na ja, also das Verbinden ist relativ einfach, in Treenode.Data kannst du einen Pointer auf die Speicheradresse der Komponente ablegen.

Das Anzeigen an der richtigen Position wirst du dann aber selbst übernehmen müssen, d.h. du musst jeweils die Treenodes durchgehen und die Komponente, deren Pointer sich in Data befindet, an der richtigen Stelle anzeigen.

Zu den Pointern ein kleines Beispiel:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
//Treenode ist jetzt natürlich ein Beispiel, das muss ggf. ein Node aus dem Array der Nodes sein o.ä.
Treenode.Data := @Edit1;
//(...)
//Dann in der Positionszuweisung:
TEdit(Treenode.Data).Left := 23;
Siluro Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 74

Win XP Prof., Win XP64 Prof., Win 7 Prof.
Delphi 7 Ent., Delphi XE, Delphi XE5
BeitragVerfasst: Di 15.03.05 14:09 
Also das mit dem Verbinden funktionier super, Danke.

Aber jetzt hab ich gleich ein neues Problem.

Man kann ja Treenode nicht als Parent angeben, also habe ich den Treeview als Parent für meine Komponente angegeben.
Aber wie finde ich denn jetzt raus wo das Treenode in meinem Treeview liegt?
Die Position des Treenodes is ja ausschlaggebend für die Position der Komponente.

MfG

Björn
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 15.03.05 14:26 
Was hälst du von der Eigenschaft DisplayRect? Die gibt das Rechteck an, in dem der Treenode angezeigt wird!
Siluro Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 74

Win XP Prof., Win XP64 Prof., Win 7 Prof.
Delphi 7 Ent., Delphi XE, Delphi XE5
BeitragVerfasst: Di 15.03.05 17:20 
Was soll ich dazu sagen, manchmal sieht man den Wald vor lauter Bäumen nicht. :roll:
Danke, so funktionierts bestens.

MfG

Björn