Jump to content

Systree view


redndahead
 Share

Recommended Posts

I don't know if it's called systree but whatever the little tree thing with the plus's and minus are that's what I would like to be able to see in a gui. I can make an already expanded version using a listbox but it would be nice to be able to open and close subsections in a list.

Can anyone englighten me if this is on the todo list or not?

red

Link to comment
Share on other sites

In this minute I have send a changed function for the 'new' GUI to jpm to use icons in treeview :-)

Regards Holger

<{POST_SNAPBACK}>

Any chance of getting a snippet of what the code would probably look like. I have a script I want to use this and I just want to get an idea of what I am in for to script this.

red

Link to comment
Share on other sites

With the new GUI-commands it could/would look like:

$maintree = GUICtrlCreateTreeview(10,10,170,150);
$aboutitem = GUICtrlCreateTreeviewitem("About",$maintree)
$generalitem = GUICtrlCreateTreeviewitem("General",$maintree)
$viewitem = GUICtrlCreateTreeviewitem("View",$generalitem); subitem

And you can now create more then one treeview.

!!! But you have to know you can NOT use unlimited treeitems. it depends on the max control number too !!!

(If you thought about to build a like-explorer-treeview :(

If there are any question please ask :ph34r:

Regards Holger

Edited by Holger
Link to comment
Share on other sites

With the new GUI-commands it could/would look like:

$maintree = GUICtrlCreateTreeview(10,10,170,150);
$aboutitem = GUICtrlCreateTreeviewitem("About",$maintree)
$generalitem = GUICtrlCreateTreeviewitem("General",$maintree)
$viewitem = GUICtrlCreateTreeviewitem("View",$generalitem); subitem

And you can now create more then one treeview.

!!!  But you have to know you can NOT use unlimited treeitems. it depends on the max control number too !!!

(If you thought about to build a like-explorer-treeview :ph34r:

Thanks Holger,

Uh well I wanted to use a great deal of tree items. I'm not quite understanding your code and how it works. Would you ber able to post some code and a printscreen of the output?

My tree would look like this

-Item1

-----subitem1

------------subsubitem1

------------subsubitem2

-----subitem2

-Item2

-Item3

So how many controls would this take up? Also is it possible to do this? If you give me an example could you give me an example like this? If one was selected could we get all the items going back up the tree? For example if I selected subsubitem2 could it return something like Item1|subitem1|subsubitem2 Last question, do you know how many controls we get to have?

red

Edited by redndahead
Link to comment
Share on other sites

Here is an example how it could/would be:

GUICreate("GUI with a treeview",340,200,-1,-1,BitOr($WS_MINIMIZEBOX,$WS_MAXIMIZEBOX,$WS_GROUP,$WS_CAPTION,$WS_POPUP,$WS_SYSMENU))
$maintree = GUICtrlCreateTreeview(10,10,170,150)
GUICtrlSetImage(-1,"shell32.dll",3,4); icon for default nonselected state
GUICtrlSetImage(-1,"shell32.dll",4,2); icon for default selected state

$aboutitem = GUICtrlCreateTreeviewitem("About",$maintree)
GUICtrlSetImage($aboutitem,"shell32.dll",23)

$generalitem = GUICtrlCreateTreeviewitem("General",$maintree)
GUICtrlSetImage(-1,"shell32.dll",15)

$toolsitem = GUICtrlCreateTreeviewitem("Tools",$maintree)
GUICtrlSetImage(-1,"shell32.dll",21)

$effectitem = GUICtrlCreateTreeviewitem("Effects",$generalitem)

$styleitem = GUICtrlCreateTreeviewitem("Styles",$generalitem)
GUICtrlSetImage(-1,"shell32.dll",24,2)
GUICtrlSetImage(-1,"shell32.dll",25,4)

$cmditem = GUICtrlCreateTreeviewitem("Commandline",$toolsitem)

$miscitem = GUICtrlCreateTreeviewitem("Misc",$toolsitem)


GUISetState(@SW_SHOW)

GUICtrlSetState($generalitem,$GUI_EXPAND)

While 1
   $msg = GUIGetMsg()
   Select
      Case $msg = -3
         ExitLoop
      Case $msg = $miscitem
         GUICtrlSetImage($maintree,"shell32.dlls",9,2)
         GUICtrlSetImage($maintree,"shell32.dlls",10,4)
    EndSelect
WEnd

GUIDelete()
Exit

So the commands are:

GUICtrlCreateTreeview(X, Y, W, H [,Style [,ExStyle]])

GUICtrlCreateTreeviewItem(Text,Treeview(Item)-ParentId [,Position in (Sub)Tree])

So your code would look like:

$tree = GUICtrlCreateTreeview(10,10,130,200)
$item1 = GUICtrlCreateTreeview("Item1",$tree1)
$subitem1 = GUICtrlCreateTreeview("SubItem1",$item1)
$subsubitem1 = GUICtrlCreateTreeview("SubSubItem1",$subitem1)
$subsubitem2 = GUICtrlCreateTreeview("SubSubItem2"$subitem1)
$subitem2 = GUICtrlCreateTreeview("SubItem2",$item1)
$item2 = GUICtrlCreateTreeview("Item2",$tree)
$item3 = GUICtrlCreateTreeview("Item3,$tree)

At the moment you can create up to 512 controls incl. trees, items, menus, buttons, checkboxes, and so on....

Edited by Holger
Link to comment
Share on other sites

Here is an example how it could/would be:

GUICreate("GUI with a treeview",340,200,-1,-1,BitOr($WS_MINIMIZEBOX,$WS_MAXIMIZEBOX,$WS_GROUP,$WS_CAPTION,$WS_POPUP,$WS_SYSMENU))
$maintree = GUICtrlCreateTreeview(10,10,170,150)
GUICtrlSetImage(-1,"shell32.dll",3,4); icon for default nonselected state
GUICtrlSetImage(-1,"shell32.dll",4,2); icon for default selected state

$aboutitem = GUICtrlCreateTreeviewitem("About",$maintree)
GUICtrlSetImage($aboutitem,"shell32.dll",23)

$generalitem = GUICtrlCreateTreeviewitem("General",$maintree)
GUICtrlSetImage(-1,"shell32.dll",15)

$toolsitem = GUICtrlCreateTreeviewitem("Tools",$maintree)
GUICtrlSetImage(-1,"shell32.dll",21)

$effectitem = GUICtrlCreateTreeviewitem("Effects",$generalitem)

$styleitem = GUICtrlCreateTreeviewitem("Styles",$generalitem)
GUICtrlSetImage(-1,"shell32.dll",24,2)
GUICtrlSetImage(-1,"shell32.dll",25,4)

$cmditem = GUICtrlCreateTreeviewitem("Commandline",$toolsitem)

$miscitem = GUICtrlCreateTreeviewitem("Misc",$toolsitem)
GUISetState(@SW_SHOW)

GUICtrlSetState($generalitem,$GUI_EXPAND)

While 1
   $msg = GUIGetMsg()
   Select
      Case $msg = -3
         ExitLoop
      Case $msg = $miscitem
         GUICtrlSetImage($maintree,"shell32.dlls",9,2)
         GUICtrlSetImage($maintree,"shell32.dlls",10,4)
    EndSelect
WEnd

GUIDelete()
Exit

So the commands are:

GUICtrlCreateTreeview(X, Y, W, H [,Style [,ExStyle]])

GUICtrlCreateTreeviewItem(Text,Treeview(Item)-ParentId [,Position in (Sub)Tree])

So your code would look like:

$tree = GUICtrlCreateTreeview(10,10,130,200)
$item1 = GUICtrlCreateTreeview("Item1",$tree1)
$subitem1 = GUICtrlCreateTreeview("SubItem1",$item1)
$subsubitem1 = GUICtrlCreateTreeview("SubSubItem1",$subitem1)
$subsubitem2 = GUICtrlCreateTreeview("SubSubItem2"$subitem1)
$subitem2 = GUICtrlCreateTreeview("SubItem2",$item1)
$item2 = GUICtrlCreateTreeview("Item2",$tree)
$item3 = GUICtrlCreateTreeview("Item3,$tree)

At the moment you can create up to 512 controls incl. trees, items, menus, buttons, checkboxes, and so on....

<{POST_SNAPBACK}>

Hi Holger, I wonder is this ViewTree command available in 103 version ?

If not.... when it would be added ? Can't wait to have the ViewTree function.

Great works.... :ph34r:

Link to comment
Share on other sites

Why do people ask programmers when something will be done? That's the stupidest question to ever ask a programmer. Everybody who's been a member of this forum for more than a month ought to have enough experience "programming" to know that its pratically impossible to put a timeframe on anything programming related unless your life/job depends on it.

Link to comment
Share on other sites

Why do people ask programmers when something will be done?  That's the stupidest question to ever ask a programmer.  Everybody who's been a member of this forum for more than a month ought to have enough experience "programming" to know that its pratically impossible to put a timeframe on anything programming related unless your life/job depends on it.

<{POST_SNAPBACK}>

Well because sometimes they get answers to the questions

I am ready to upload the new GUI syntax with the treeview. I just wait Jon approval

It also helps them determine if they want to wait on a project or try something else because it is going to take too much time to complete. I actually find your answer to josbe's question quite offending and anyone who's been a member of this fourm for more than a month ought to have enough experience reading posts to know that we prefer to have courteous answers as to not alienate others. Now being a member of the autoIT community for a little while I think I can say that this community is built on the being courteous and helpful and take's a great dislike in people who feel they are "elite" I.E. the gaming forums. So as a member of this community I would prefer that if I post a question I would like it to be answered in a courteous manner and a post that doesn't have anything to do with answering my question I can do without.

Sorry for the rant but I found it ironic that you felt guidosoft was "one of the most annoying people you have seen on the forum in quite some time."

red

Link to comment
Share on other sites

I am ready to upload the new GUI syntax with the treeview. I just wait Jon approval

<{POST_SNAPBACK}>

Thanks for the update jpm.

Jon-

I know you are really tied up making icons and all :ph34r: but I know you were discussing changing the gui functions what is the status on that and what do you see coming in the future of autoIT.

red

Link to comment
Share on other sites

Getting an answer is one thing. Getting an answer that will be correct is another thing entirely. I can't even begin to count the number of times I've seen a date slip time and time again. I don't know about the rest of you, but I get tired of seeing, "Oh, it'll be out in 2 days!" and 8 days later you either get it or finally somebody says it won't be out then and will be out in another couple days.

Jon with AutoIt is one of the better people about keeping people update either with releases or with news, but still, it's never spot on because programming is never as easy as we'd like.

It's a stupid question because although there are potential answers, the odds of the answer being even close are extremely small, so you end up walking away knowing as much as you did before you asked the question.

This is in no means bad-mouthing Jon or any of the other developers, either. This is something thats part of programming. I'm notorious for being later with things than I would like.

A better way to ask the question is how is progress going. That way you find out if the project is still active, but don't get some release date that will likely be missed.

Anybody reading posts for more than a month should know that being polite and nice and sweet just isn't my strong suit. I call it like I see it. No more, no less. Most people can't handle me because I don't pull any punches. That's perfectly fine with me because I can't stand most people any way. If you are offended by what I said, then it sucks to be you that you get offended so easily. Me, I don't get offended because I choose not to be offended by things. Although I think some people think I get upset or my blood pressure goes up or gibberish like that over some people/posts on the forum, quite the opposite is true. I find most of this amusing because its so easy to get people fired up.

So which do you prefer? Sweet, tasty bullshit? Or cold, brutally honest truth?

P.S. I'm not annoying (yet). I can be if it interests me, and I can be a real bitch when it interests me.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...