[GELÖST] MaxGUI - Auf TreeView Mausaktion abfragen?
Übersicht

CO2ehemals "SirMO"Betreff: [GELÖST] MaxGUI - Auf TreeView Mausaktion abfragen? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe ein Problem mit der MaxGUI: Ich habe einen TreeView erstellt. Nun frage ich in der Hauptschleife ab, ob auf dem TreeView die rechte Maustaste geklickt wird, wenn ja, soll ein popupmenü erscheinen. Ich weiß, dass es beim TreeView einen style-Parameter gibt, nur weiß ich nicht, ob man hier auch sowas wie bei einem Panel machen muss (PANEL_ACTIVE). |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
- Zuletzt bearbeitet von CO2 am Fr, Jun 15, 2012 9:46, insgesamt einmal bearbeitet
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein, ein Treeview hat nur Drag and Drop als Style. | ||
Logic Gui Professional a Gui Designer for MaxGui |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, aber ich kann doch den rechten mausklick abfragen, wenn der benutzer auf ein Objekt in der treeview klick, oder nicht?
Und ich habe da noch ein Problem mit dem Treeview: Der Benutzer kann später weitere Objekte in der TreeView erstellen, allerdings gibt es dann auch objekte, die wiederrum weitere objekte enthalten können. Wie kann ich denen denn dann das eine etage höher liegende objekt zuweisen? (Ich hoffe man kann das problem verstehen ![]() |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du eine Node einfügst (mit Add- oder InsertTreeviewNode) dann musst du die Node, die eine Etage höher liegt, als Parameter mitgeben.
Rechte Mausklicks abfragen geht mit EVENT_GADGETMENU. |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier mal ein Beispiel mit Nodes und Unternodes, single, double und right click.
Mit debug compilieren. Code: [AUSKLAPPEN] SuperStrict
Import MaxGui.Drivers Import MaxGui.XPManifest Global main_window:TGadget main_window:TGadget = CreateWindow:TGadget("AppTitle",90,50,189,258,Null,WINDOW_TITLEBAR|WINDOW_MENU |WINDOW_CENTER) Local TreeView1:TGadget = CreateTreeView:TGadget(25,21,134,163,main_window:TGadget,Null) Local Node1:TGadget = AddTreeViewNode( "Node1", TreeViewRoot(Treeview1) ) AddTreeViewNode( "Node1.1", Node1 ) Local Node2:TGadget = AddTreeViewNode( "Node2", TreeViewRoot(Treeview1) ) Local Node22:TGadget = AddTreeViewNode( "Node2.1", Node2 ) AddTreeViewNode( "Node2.2", Node2 ) Repeat WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE Select EventSource() Case main_window main_window_WC( main_window:TGadget ) End Select Case EVENT_GADGETACTION Select EventSource() Case TreeView1 TreeView1_GA( TreeView1:TGadget, EventExtra() ) End Select Case EVENT_GADGETSELECT Select EventSource() Case TreeView1 TreeView1_GS( TreeView1:TGadget, EventExtra() ) End Select Case EVENT_GADGETMENU Select EventSource() Case TreeView1 TreeView1_GM( TreeView1:TGadget, EventExtra() , main_window:TGadget ) End Select End Select Forever Function main_window_WC( Window:TGadget ) DebugLog "Window main_window wants to be closed" End End Function Function TreeView1_GA( TreeView:TGadget , Node:Object ) DebugLog "TreeView TreeView1 double clicked a Node" End Function Function TreeView1_GS( TreeView:TGadget , Node:Object ) DebugLog "TreeView TreeView1 single clicked a Node" End Function Function TreeView1_GM( TreeView:TGadget , Node:Object , Window:TGadget=Null ) DebugLog "TreeView TreeView1 right clicked a Node" End Function |
||
Logic Gui Professional a Gui Designer for MaxGui |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ blackgecko:
Also kann ich es nicht so machen, dass der Benutzer z.B.: Erst Auf "Neues Item erstellen" klickt und dann diesem Item noch ein Unter-Item hinzufügen kann? @ jsp: Danke dir |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Also kann ich es nicht so machen, dass der Benutzer z.B.: Erst Auf "Neues Item erstellen" klickt und dann diesem Item noch ein Unter-Item hinzufügen kann?
Natürlich. Ein Treeview kann beliebig tief verschachtelt sein. Oder versteh ich dich falsch? |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
jsp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielleicht solltest du noch mal genau beschreiben was dabei herauskommen soll, dann ist es vielleicht einfacher zu helfen.
Hier das obige Beispiel abgeändert um ein zusätzliches popup Menü und das anhängen von extra Nodes. Einfach ein Node anwählen und dann rechte Maustaste "Neu" im Popup-Menü ... Code: [AUSKLAPPEN] SuperStrict
Import MaxGui.Drivers Import MaxGui.XPManifest Global main_window:TGadget Global TreeView1:TGadget main_window:TGadget = CreateWindow:TGadget("AppTitle",90,50,189,258,Null,WINDOW_TITLEBAR|WINDOW_MENU |WINDOW_CENTER) TreeView1:TGadget = CreateTreeView:TGadget(25,21,134,163,main_window:TGadget,Null) Local TreeView1_PopUpMenu:TGadget = CreateMenu( "" , 0 , Null ) Local TreeView1_PopUpMenu_NeuerKnoten:TGadget = CreateMenu( "Neu" , 100 , TreeView1_PopUpMenu:TGadget ) Local Node1:TGadget = AddTreeViewNode( "Node1", TreeViewRoot(Treeview1) ) AddTreeViewNode( "Node1.1", Node1 ) Local Node2:TGadget = AddTreeViewNode( "Node2", TreeViewRoot(Treeview1) ) Local Node22:TGadget = AddTreeViewNode( "Node2.1", Node2 ) AddTreeViewNode( "Node2.2", Node2 ) Repeat WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE Select EventSource() Case main_window main_window_WC( main_window:TGadget ) End Select Case EVENT_GADGETACTION Select EventSource() Case TreeView1 TreeView1_GA( TreeView1:TGadget, EventExtra() ) End Select Case EVENT_GADGETSELECT Select EventSource() Case TreeView1 TreeView1_GS( TreeView1:TGadget, EventExtra() ) End Select Case EVENT_GADGETMENU Select EventSource() Case TreeView1 TreeView1_GM( TreeView1:TGadget, EventExtra() , main_window:TGadget , TreeView1_PopUpMenu:TGadget ) End Select Case EVENT_MENUACTION Select EventSource() 'Menu_Events for Gadget = TreeView1_PopUpMenu Case TreeView1_PopUpMenu_NeuerKnoten:TGadget TreeView1_PopUpMenu_NeuerKnoten_MA( TreeView1_PopUpMenu:TGadget , TreeView1_PopUpMenu:TGadget , TreeView1_PopUpMenu_NeuerKnoten:TGadget ) End Select End Select Forever Function main_window_WC( Window:TGadget ) DebugLog "Window main_window wants to be closed" End End Function Function TreeView1_GA( TreeView:TGadget , Node:Object ) DebugLog "TreeView TreeView1 double clicked a Node" End Function Function TreeView1_GS( TreeView:TGadget , Node:Object ) DebugLog "TreeView TreeView1 single clicked a Node" End Function Function TreeView1_GM( TreeView:TGadget , Node:Object , Window:TGadget=Null , PopUpMenu:TGadget=Null ) DebugLog "TreeView TreeView1 right clicked a Node" PopupWindowMenu( Window:TGadget , PopUpMenu:TGadget ) End Function Function TreeView1_PopUpMenu_NeuerKnoten_MA( Window:TGadget , Parent:TGadget , Menu:TGadget ) DebugLog "Menu Neu was selected from Window TreeView1_PopUpMenu" Local Node:TGadget = SelectedTreeViewNode( Treeview1 ) AddTreeViewNode( "xxx",Node) End Function |
||
Logic Gui Professional a Gui Designer for MaxGui |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ jsp:
Danke dir, das war die Lösung. |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group