TreeView einem bestimmten Gui zuordnen

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Wick3d
Posts: 14
Joined: 04 Apr 2014, 03:24

TreeView einem bestimmten Gui zuordnen

20 Oct 2018, 06:30

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
User avatar
nnnik
Posts: 3457
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: TreeView einem bestimmten Gui zuordnen

20 Oct 2018, 06:32

Du musst das Help Gui auch als Default setzen wenn du auf die TreeView Befehle zugreifst.
Selbiges gilt für die ListView.
Recommends AHK Studio
Wick3d
Posts: 14
Joined: 04 Apr 2014, 03:24

Re: TreeView einem bestimmten Gui zuordnen

20 Oct 2018, 06:59

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.
User avatar
nnnik
Posts: 3457
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: TreeView einem bestimmten Gui zuordnen

20 Oct 2018, 08:42

Gui, Help:Default
Über TV_Get kannst du dir alle Möglichen Informationen über ein TreeView anzeigen lassen.
Recommends AHK Studio
Wick3d
Posts: 14
Joined: 04 Apr 2014, 03:24

Re: TreeView einem bestimmten Gui zuordnen

20 Oct 2018, 16:02

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.
Wick3d
Posts: 14
Joined: 04 Apr 2014, 03:24

Re: TreeView einem bestimmten Gui zuordnen

20 Oct 2018, 17:26

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

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 6 guests