Autor Beitrag
Nightfly
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 163



BeitragVerfasst: Do 19.06.03 13:28 
Hi

ich habe eine Datenbank zu einem Expetensystem gemacht. Für die die nicht wissen was das ist: Dieses System Besteht aus einer Menge ja/nein fragen, und trifft anhand der benutzereingaben dann Entscheidungen, uns ist Lernfähig. Z.B. "Startet das Auto?" NEIN "Ist Benzin im Tank?" NEIN "Benzin einfülen" ..naja, und so weiter halt.

Ein Datensatz besteht nun aus einer Indexnummer, dem eigentlichen inhalt, und je zwei feldern mit den Adressen der NAchfolger, also für linken und rechten knoten.

Nun möchte ich diese Baumstruktur bei bedarf mit Delphi anzeigen lassen. Wie könnte ich das machen?
Mir fehlt da grad jegliche Idee.
MrSpock
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Do 19.06.03 17:46 
Hallo Nightfly,

grundsätzlich eignet sich dazu die TreeView Komponente. Die stellt den Baum aber gedreht um 90° dar, aber wenn das nicht stört!?

_________________
Live long and prosper
MrSpock \\//
MrSpock
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Do 19.06.03 17:56 
Hallo Nightfly,

falls die diese Darstellung nicht gefällt, kannst du dir natürlich einen Baum direkt auf ein Canvas zeichnen. Im Buch "Delphi Entwicklung leistungsfähiger Anwendungen und eigener Komponenten" aus dem Verlag Addison-Wesley, wird eine Tree Designer Komponente entwickelt. Der Code ist auch auf CD dabei. Vielleicht kennst du jemanden, der die das Buch mal leihen kann?!

_________________
Live long and prosper
MrSpock \\//
Nightfly Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 163



BeitragVerfasst: Fr 20.06.03 09:10 
Das Problem bei der Tree komponente: die drehung. das Problem bei den Canvas: es ist doch, wenn überhaupt, sehr schwer möglich den Baum dann editierbar zu machen, oder? Und diese möglichkeit sollte schon vorhaden sein, bloß darstellen reicht nich.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 20.06.03 10:08 
Hallo,
Nightfly hat folgendes geschrieben:
Problem bei den Canvas: es ist doch, wenn überhaupt, sehr schwer möglich den Baum dann editierbar zu machen, oder?

es ist sicherlich aufwändiger, muss aber nciht umbedingt schwer sein.

Z.b. du willst die Beschriftung der Knoten ändern: Du musst auf einen Klick auf das Canvas reagieren. Erfolgt dieser, überprüfst du, ob an der Stelle ein Knoten/Blatt dargestellt ist (da du ja die Stellen auch zum Zeichnen ermitteln musst sollte das nicht so schwer sein). Ist dies gegeban erzeugst du Dynamisch ein Edit Feld und blendest es an der Stelle des Knotens über deinem Canvas ein und setzt den Fokus auf dieses. Nach dem die Enter Taste gedrückt wurde (oder das Edit Feld verlassen) übernimmst du die Eingabe und zeichniest den Knoten neu (mit dem neuen Namen).

Ich glaube das Zeichnen selbst ist komplizierter.
Aber sicher soetwas ist eine menge Arbeit (die ganze darstellungsgeschichte) und sollte als eigenständige Komponente realisiert werden, dammit man es auch gut wiederverwenden kann.

Gruß
Klabautermann