Seite 1 von 1

Treeview mit Buttons

Verfasst: Fr, 24. Apr 2009 18:28
von Jan
Hat jemand schon mal XbpPushButtons in einen Treeview eingebaut? Geht das überhaupt? Ich würde gerne 3 Buttons zu jedem Eintrag einbauen, wenn das geht.

Ich frage das prophylaktisch, bevor ich da zu viel Zeit reinstecke und dann merke, daß das alles Nonsens ist. :roll:

Jan

Re: Treeview mit Buttons

Verfasst: Fr, 24. Apr 2009 18:42
von AUGE_OHR
Jan hat geschrieben:Hat jemand schon mal XbpPushButtons in einen Treeview eingebaut? Geht das überhaupt? Ich würde gerne 3 Buttons zu jedem Eintrag einbauen, wenn das geht.
mir ist nicht ganz klar "wo" du "3 Buttons zu jedem Eintrag" haben willst.

einen Node würde man ja mit :AddItem() anfügen ... sollen da 3 Button´s mit rein ?

Re: Treeview mit Buttons

Verfasst: Fr, 24. Apr 2009 21:18
von Jan
Jimmy,

genau so.

Jan

Re: Treeview mit Buttons

Verfasst: Fr, 24. Apr 2009 22:06
von brandelh
Hi,

dann müsste man den "Node" als "Parent" angeben und für genügend Platz sorgen,
aber ob es geht ?

Re: Treeview mit Buttons

Verfasst: Fr, 24. Apr 2009 23:29
von AUGE_OHR
Hi,
brandelh hat geschrieben:dann müsste man den "Node" als "Parent" angeben und für genügend Platz sorgen,
aber ob es geht ?
ich fürchte nein, den der "Node" ist ja kein XbPart sondern ein activex
Object. Es gibt auch kein Hwnd für "Node", also denke ich das man keinen "Parent" zur verfügung hat.

ob es vielleicht mit ownerdraw möglich wäre, oder geht das überhaupt ?
wenn ich unter http://msdn.microsoft.com/de-de/library ... S.80).aspx das so sehe
haben wir nur die 1st Gruppe von ownerdraw fähigen Parts ? (ok ist für .NET)

aber nun mal zum "Design" der Idee ob man es nicht "anders" machen könnte ?
wie wäre den die rechte Maustaste und ein Pop-Up Menu ?

Re: Treeview mit Buttons

Verfasst: Fr, 24. Apr 2009 23:42
von Martin Altmann
Nun,
man kann ja in dem Node eine Grafik anzeigen! Wenn man nun also eine Grafik mit drei Buttons malt und dann abfängt, auf welchen Bereich der Grafik geklickt wurde (erstes, zweites, drittes Drittel), weiß man, welcher Button gewählt wurde.
Wenn man das perfekt machen will, braucht man natürlich nicht eine, sondern 10 Grafiken, um alle Zustände anzeigen zu können:
  • Kein "Knopf" ist eingedrückt/markiert.
  • Maus schwebt über dem linken "Knopf"
  • Maus schwebt über dem mittleren "Knopf"
  • Maus schwebt über dem rechten "Knopf"
  • Maus drückt auf den linken "Knopf"
  • Maus drückt auf den mittleren "Knopf"
  • Maus drückt auf den rechten "Knopf"
  • Der linke "Knopf" ist markiert (hat den Fokus)
  • Der mittlere "Knopf" ist markiert (hat den Fokus)
  • Der rechte "Knopf" ist markiert (hat den Fokus)
Aber ich meine, so was mal bei einem Beispiel von Diego (wem sonst :D ) gesehen zu haben...

Viele Grüße,
Martin

Re: Treeview mit Buttons

Verfasst: Sa, 25. Apr 2009 7:10
von Jan
Moin Leute,

Danke für all die Gedanken, die Ihr eingeworfen habt. Und die leider meine Befürchtungen bestätigt haben. Nur ein paar Anmerkungen dazu:

- XbpTreeView kann kein Ownerdrawing, Till will sich das aber mal ansehen, wie aufwändig das ist.
- Mit Grafiken geht schlecht. Denn wie ist das da mit Themes? Und ich bräuchte ja noch 3 Bilder für hover.
- Klar, Diego ist da ein Ass drin, den Treeview zu verbiegen. Ich bin mit seinen Beispielen aber nie wirklich klargekommen. Und Buttons hat er glaube ich noch nicht umgesetzt.

Ich denke ich muß das anders machen. Das ich über den :marked-Slot einen kleinen Bereich daneben aufbaue mit ein wenig Detailinfos zu dem jeweiligen Eintrag und den 3 Buttons. Mal schauen, wie das aussieht. Und ob das von der Handhabung her für den User praktikabel ist.

Jan

Re: Treeview mit Buttons

Verfasst: Sa, 25. Apr 2009 7:52
von AUGE_OHR
Jan hat geschrieben:- XbpTreeView kann kein Ownerdrawing, Till will sich das aber mal ansehen, wie aufwändig das ist.
ich denke es geht nicht mit MsComCtl.OCX v6.x
Jan hat geschrieben:- Mit Grafiken geht schlecht. Denn wie ist das da mit Themes?
Theme passt auch nicht mit v6.x
Jan hat geschrieben:Und ich bräuchte ja noch 3 Bilder für hover.
Also nun ...
Jan hat geschrieben:- Klar, Diego ist da ein Ass drin, den Treeview zu verbiegen. Ich bin mit seinen Beispielen aber nie wirklich klargekommen. Und Buttons hat er glaube ich noch nicht umgesetzt.
ich habe auch nichts in meiner Sammelung gefunden, aber Diego hat eine Treeview Class.
Jan hat geschrieben:mit ein wenig Detailinfos zu dem jeweiligen Eintrag und den 3 Buttons.
also ich komme mir immer noch vor wie mit den 3 Muscheln ... ich weiss immer noch nicht was ich 3 Button´s machen sollen ?

Auswahl -> Pop-Up Menu
Info -> Tooltip ?

Re: Treeview mit Buttons

Verfasst: Sa, 25. Apr 2009 8:22
von Martin Altmann
Hallo Jan,
Diego hat das mit einer Checkbox gemacht - und die ist eine Grafik (so weit ich mich erinnere)!
Aber was soll das überhaupt bringen? Was willst Du erreichen? Ich glaube nicht, dass das Treeview das "richtige" Control für Deinen Wunsch ist...

Viele Grüße,
Martin

Re: Treeview mit Buttons

Verfasst: Sa, 25. Apr 2009 8:31
von Jan
Moin Jimmy und Martin,

der Treeview ist schon das richtige Element für mich. Der passt perfekt zu dem, was ich anzeigen möchte. Ich stelle nur das komplette Programm im Moment auf eine etwas flexiblere Bedienung um. Und habe durchgängig hinter nahezu allen Angaben 3 Buttons, um 3 überall gleiche Aktionen auszuführen zu können. Und damit das überall gleich ist (der User soll halt überall das gleiche Bedienkonzept haben), möchte ich diese 3 Buttons auch zu jedem Eintrag im Treeview anbieten. Von daher sind die ansich korrekten Ideen mit einem Kontextmenü usw. zwar eigentlich richtig, passen in diesem speziellen Fall aber leider nicht wegen der fehlenden Durchgängigkeit. Auch eine über das ganze Programm bestehende Toolbar mit den passenden Funktionen würde mir nicht weiterhelfen, weil das in diesem speziellen Fall schlichtweg zu kompliziert zu bedienen ist.

Jan

Re: Treeview mit Buttons

Verfasst: Sa, 25. Apr 2009 10:11
von AUGE_OHR
Martin Altmann hat geschrieben:Diego hat das mit einer Checkbox gemacht - und die ist eine Grafik (so weit ich mich erinnere)!
meinst du CheckTV ?

die Checkboxes ist eine Property* vom MsComCtl.OCX auf dem ja das XbpTreeview() basiert,
aber es wird uns von Alaska ja nicht angeboten ...*http://msdn.microsoft.com/de-de/library ... S.80).aspx

wenn man nun .NET benutzen würde ... so aber muss man sich mit dem begnügen was man hat.
ich denke da an die TreeNode.Tag-Eigenschaft, sowas wie :cargo, ob man da einen Codeblock
ablegen könnte.

Ich habe mir mal Diego´s Treeview Class angesehen und denke seine "Taktik" zu erkennen:
mit :itemMarked := {| oItem, aRect, self | ... } muss identifiziert werden welches gerade den
"Focus" hat und seine Rechteck Masse des Item = Node. mit :lbDblClick hätte ich dann das
:itemSelected(), aber das :lbDown ist noch "frei" !

man hätte also den Node, das XbpTreeViewItem-Objekt, das markiert wurde und man hätte die
:Tag Property des Object ...

:-k

eine andere Idee geht Richtung Thread und Pop-up. du übergibts die :itemMarked Parameter im
Codeblock an einen Thread ala Tooltip. Im Thread müsste du dann zusehen das ein Pop-up "auf"
oder "neben" dem NodeItem erscheint was deine 3 Button´s enthält.

Ich "denke" das du wohl möglich per Keyboard die 3 Button´s bedienen kannst, also würde ich
den Thread mit einer verzögerrung :Starttime := SECONDS()+0.1 starten damit bei navigieren
mit dem Cursor nicht immer was "aufpoppt".

Re: Treeview mit Buttons

Verfasst: Sa, 25. Apr 2009 10:13
von Martin Altmann
Hallo Jimmy,
AUGE_OHR hat geschrieben:meinst du CheckTV ?
yup.

Viele Grüße,
Martin

Re: Treeview mit Buttons

Verfasst: Sa, 25. Apr 2009 10:20
von Jan
Ich habe von Diego auch noch den mit farbigen Einträgen und den mit Drag and Drop-Funktionalität. Den mit den Farben hatte ich mal ausprobiert, weil das sehr gut zu dem Projekt passte. Hab das aber leider nie wirklich ans Laufen bekommen.

Jan

Re: Treeview mit Buttons

Verfasst: Sa, 25. Apr 2009 13:59
von AUGE_OHR
Jan hat geschrieben:Den mit den Farben hatte ich mal ausprobiert, weil das sehr gut zu dem Projekt passte. Hab das aber leider nie wirklich ans Laufen bekommen.
Das sollte leicht sein, den Node hat ja die Property BackColor und ForeColor aber das sagt uns Alaska ja nicht
Node_Color.JPG
Node_Color.JPG (64.9 KiB) 9980 mal betrachtet
probiere doch mal

Code: Alles auswählen

oNode:setProperty('ForeColor',AutomationTranslateColor( GRA_CLR_WHITE,.f.))
oNode:setProperty('BackColor',AutomationTranslateColor( GraMakeRGBColor({031,153,255}),.f.))

Re: Treeview mit Buttons

Verfasst: Mi, 29. Apr 2009 20:35
von Jan
AUGE_OHR hat geschrieben:probiere doch mal

Code: Alles auswählen

oNode:setProperty('ForeColor',AutomationTranslateColor( GRA_CLR_WHITE,.f.))
oNode:setProperty('BackColor',AutomationTranslateColor( GraMakeRGBColor({031,153,255}),.f.))
Leider funktioniert das nicht, da :setProperty() unter Xbase++ nicht vom Treeview unterstützt wird.

Jan

Re: Treeview mit Buttons

Verfasst: Mi, 29. Apr 2009 22:33
von AUGE_OHR
Jan hat geschrieben:Leider funktioniert das nicht, da :setProperty() unter Xbase++ nicht vom Treeview unterstützt wird.
mal mit dem XbpTreeViewItem() versucht, den das ist der Node (nicht den Tree)

Re: Treeview mit Buttons

Verfasst: Do, 30. Apr 2009 6:55
von Jan
Jimmy,

ist schon klar. Aber wie gesagt: Das geht nicht!

Jan

Re: Treeview mit Buttons

Verfasst: Sa, 02. Mai 2009 17:55
von AUGE_OHR
hi,
Jan hat geschrieben:ist schon klar. Aber wie gesagt: Das geht nicht!
Es muss gehen.
Ich greife zwar direkt auf MsComCtl.OCX zu, aber auch die XbpTreeView() Class muss die Nodes Property haben.
über die Item Property von Nodes kommst du dann zum Node und da geht es dann
MS_TREE_FARBE.JPG
MS_TREE_FARBE.JPG (17.03 KiB) 9854 mal betrachtet

Re: Treeview mit Buttons

Verfasst: Sa, 02. Mai 2009 18:47
von Jan
AUGE_OHR hat geschrieben:Es muss gehen.
Wenn Du das sagst. Gib mir den Weg vor, und ich setze das sofort um.

Jan

Re: Treeview mit Buttons

Verfasst: So, 05. Jan 2020 22:01
von ij1972
Jan hat geschrieben: Sa, 25. Apr 2009 10:20 Ich habe von Diego auch noch den mit farbigen Einträgen und den mit Drag and Drop-Funktionalität. Den mit den Farben hatte ich mal ausprobiert, weil das sehr gut zu dem Projekt passte. Hab das aber leider nie wirklich ans Laufen bekommen.

Jan
Hallo,
hat jemand den Code von Diegos Beispiel mit farbigen Treeviewitem?
Könnte diesen gebrauchen :D
IJ