Page 1 of 1

TreeView einem bestimmten Gui zuordnen

Posted: 20 Oct 2018, 06:30
by Wick3d
Hallo Leute,

seid kurzer Zeit habe ich wieder ein "intensiveres" Projekt, womit neue Probleme kommen :D

Was ich realisieren möchte:
Ich möchte derzeit ein Gui erstellen das als "Help Guide" dient. Dort gibt es ein TreeView der die Themen anzeigt und rechts davon wird später eine .txt Datei angezeigt.
Da dies ein "Nebengui" ist möchte ich das eindeutig benennen. (z.B. Gui Help: ....)

Hier das funktionierende Script (so wie es aussehen soll :D )

Code: Select all

Gui, Add, TreeView, x10 y10 h400 w200 -lines
P1 := TV_Add("Willkommen",, "bold Expand")
P1C1 := TV_Add("Schnellstart", P1)  ; Geben Sie P1 an, um dieses Element unterzuordnen.
P2 := TV_Add("Wie Funktionierts?",, "bold Expand")
P2C1 := TV_Add("Einstellungen", P2)
P2C2 := TV_Add("Kontakt", P2)

Gui, Font, S20 bold underline , Verdana
Gui, Add, Text, x230 y10 w700 h40 ,
Gui, Font, S10 Normal, Verdana
Gui, Add, Edit, vShow1 h350 w800 x220 y54 ReadOnly,

Gui, Show, AutoSize

return
Guiclose:
exitapp

Das Problem:
Sobald ich den Gui eindeutig benenne, ist die Liste leer. Ich weis, ich musst sicher die befehle "TV_Add" den Gui zuweisen. Aber wo? Wie?

So wie ich es mir vorstell (aber nicht funktioniert :? )

Code: Select all

Gui Help: Add, TreeView, x10 y10 h400 w200 -lines
P1 := TV_Add("Willkommen",, "bold Expand")
P1C1 := TV_Add("Schnellstart", P1)  ; Geben Sie P1 an, um dieses Element unterzuordnen.
P2 := TV_Add("Wie Funktionierts?",, "bold Expand")
P2C1 := TV_Add("Einstellungen", P2)
P2C2 := TV_Add("Kontakt", P2)

Gui Help: Font, S20 bold underline , Verdana
Gui Help: Add, Text, x230 y10 w700 h40 , 
Gui Help: Font, S10 Normal, Verdana
Gui Help: Add, Edit, vShow1 h350 w800 x220 y54 ReadOnly,
Gui Help: Show, AutoSize

return
Guiclose:
exitapp

Ich danke euch für die Hilfe bei dem kleinen Problem.

Gruß
Alex

Re: TreeView einem bestimmten Gui zuordnen

Posted: 20 Oct 2018, 06:32
by nnnik
Du musst das Help Gui auch als Default setzen wenn du auf die TreeView Befehle zugreifst.
Selbiges gilt für die ListView.

Re: TreeView einem bestimmten Gui zuordnen

Posted: 20 Oct 2018, 06:59
by Wick3d
Danke für die schnelle Antwort, nur wie stelle ich das an ?

EDIT:
Noch eine weitere Frage: Und zwar wie kann ich mir den Namen des selektierten Themas ausgeben lassen (oder die ElementID?).
Denn mit der ID-Nummer von TV_GetSelection kann man nicht sehr viel anfangen, da Sie sich bei jedem öffnen ändert.

Re: TreeView einem bestimmten Gui zuordnen

Posted: 20 Oct 2018, 08:42
by nnnik
Gui, Help:Default
Über TV_Get kannst du dir alle Möglichen Informationen über ein TreeView anzeigen lassen.

Re: TreeView einem bestimmten Gui zuordnen

Posted: 20 Oct 2018, 16:02
by Wick3d
Danke dir, das mit dem GUI klappt jetzt.

Nur das mit TV_Get bringt nicht das gewünschte Ergebnis. Ich möchte vom aktuell markierten Thema, den Namen wiedergeben lassen.
Mit TV_Get muss ich aber schon die Element ID wissen ....
Ich hätte ne Idee dies über Umwege zu machen

- Bei jedem start vom GUI die Nummern der Themen auslesen und für die jeweilige ID speichern
- vergleichen ob dies mit der aktuellen Auswahl übereinstimmt

mal sehen, ich probier etwas rum.

Re: TreeView einem bestimmten Gui zuordnen

Posted: 20 Oct 2018, 17:26
by Wick3d
Nabend,

ich habe hier eine Lösung für mein Problem, bin soweit zufrieden, da ich es in einem Loop untergebracht habe :)

Für die Vollständigkeit und falls jemand auch danach sucht. Hier meine Lösung:

Code: Select all

Gui Help:Default
Gui Help: Add, TreeView, x10 y10 h400 w200 -lines
P1 := TV_Add("Willkommen",, "bold Expand")
  P2 := TV_Add("Schnellstart", P1)  ; Geben Sie P1 an, um dieses Element unterzuordnen.
P3 := TV_Add("Wie Funktionierts?",, "bold Expand")
  P4 := TV_Add("Einstellungen", P3)
  P5 := TV_Add("Kontakt", P3)

Gui Help: Font, S20 bold underline , Verdana
Gui Help: Add, Text, x230 y10 w700 h40 , 
Gui Help: Font, S10 Normal, Verdana
Gui Help: Add, Edit, vShow1 h350 w800 x220 y54 ReadOnly,

Gui Help: Show, AutoSize

;Speichert die Anzahl der Positionen
TVcount := TV_GetCount()
count := 1

;Nummern der Positionen werden bei jedem neuen GUI-Aufbau gescant
Loop, %TVcount%{
	NP%count% := TV_GetSelection()
	Send, {Down}
	count++
}

return
Guiclose:
exitapp

a::
GUI Help: Default

;Über einen Vergleich werden die Nummern mit der aktuellen ausgewählten Nummer verglichen.
;Anschließend wird der Name des richtigen Elements wiedergegeben
x := 0
count = 1
activeselection := TV_GetSelection()
Loop, %TVcount%{
	If (NP%count% == activeselection){
		TV_GetText(x, P%count%)
		MsgBox, %x%
		Return
	}
	count++
}

Return