Problem mit ListView in GUIs Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Ahk_fan
Posts: 15
Joined: 31 Aug 2018, 14:34

Problem mit ListView in GUIs

21 Sep 2018, 08:19

Hallo,

ich habe folgendes Problem:
1) in einem PARENT:Gui ist eine Listview mit Daten, die über eine Funktion befüllt wird
2) durch Doppelklick auf einen Eintrag wird eine CHILD:Gui geöffnet mit einer neuen Listview
3) in dieser Childview wird eine Eintrag markiert und ein Button "Erledigt" geklickt
4) danach wird die gleiche Funktion wie in 1) aufgerufen mit übergabe des v-Namens der Listview um die Daten in der Listview der PARENT:Gui zu aktualisieren

ABER
- das funktioniert nicht, es wird immer die 2. Listview aus der CHILD:Gui aktualisiert!!! statt der, die in der Funktion übergeben wird!

Kann mir da jemand helfen, ich hänge schn 2 Tage dran und komme nicht weiter...? Die Listweis machen mich noch wahnsinnig :headwall:

hier ein Beispielcoder, der das verdeutlicht

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
Gui, PARENT:New
gui, PARENT:-Resize ;+0x40000 +0x200000
Gui, +LastFound
Gui, PARENT:Add, ListView, w500 h200 HWNDhLB grid AltSubmit  vResultsLV gResultLVClick +LV0x10000, 1|2|3|4          ;Checked
	lvbefuellen("ResultsLV")
Gui, PARENT:Add, Button, x+5 gNeuLaden, reload
Gui, PARENT:Show, w600 h400 Center,ttt
return

PARENTGuiClose:
Exitapp

NeuLaden:
reload
return

ResultLVClick:
Gui, PARENT:submit, nohide
if A_GuiEvent = Normal
{
	LV_GetText(RowText, A_EventInfo, 1)
	geklickt = %A_guiEvent%
	ZeileNum = %A_EventInfo%
	LV_GetText(RowText2, A_EventInfo, 2)
	LV_GetText(RowText3, A_EventInfo, 3)
	LV_GetText(RowText4, A_EventInfo, 4)	
}
if A_GuiEvent = DoubleClick                ;or GoKnopf = 1
{
	LV_GetText(RowText, A_EventInfo, 1)
	geklickt = %A_guiEvent%
	ZeileNum = %A_EventInfo%
	LV_GetText(RowText2, A_EventInfo, 2)
	LV_GetText(RowText3, A_EventInfo, 3)
	LV_GetText(RowText4, A_EventInfo, 4)
	gosub, PZINOpen

}
if A_GuiEvent = RightClick
{
	LV_GetText(RowText, A_EventInfo, 1)
	geklickt = %A_guiEvent%
	ZeileNum = %A_EventInfo%
	LV_GetText(RowText2, A_EventInfo, 2)
	LV_GetText(RowText3, A_EventInfo, 3)
	LV_GetText(RowText4, A_EventInfo, 4)
}
return
;#################
PZINOpen:
Gui, PARENT:submit, nohide
DestroyGUIs()
Gui, CHILD:New
Gui, CHILD:+ParentPARENT -Resize +AlwaysOnTop -Caption ;+0x40000
Gui, CHILD:Add, ListView, x30 y40 w500 r5 HWNDLVDateien Hdr grid AltSubmit gDateioeffnen vDateilliste +LV0x10000,Name|pfad
Loop, %A_Desktop%\*.*
    LV_Add("", A_LoopFileName, A_LoopFilePath)
LV_ModifyCol(1, 250)  ; Passt die Breiten der Spalten an den Inhalt der Reihen an.
LV_ModifyCol(2, 100)  ; Kennzeichnet aus Sortierungsgründen die Spalte 2 als Integer.
gui, CHILD:add, button, gErledigt, erledigt
Gui, CHILD:show, x0 y200 autosize
return

;#################
Dateioeffnen:
Gui, CHILD:submit, nohide
if A_GuiEvent = DoubleClick 
{
	LV_GetText(TextDateiName, A_EventInfo, 1)
	LV_GetText(TextDateiPfad, A_EventInfo, 2)
	run, %TextDateiPfad%
}
return
;################
Erledigt:
Gui, CHILD:submit, nohide
msgbox, erledigt!!!
lvbefuellen("ResultsLV")
return

;#################
; Functions
lvbefuellen(LVname){
	GuiControl, PARENT:-ReDraw, %LVname%
	Gui, ListView, %LVname%
	LV_Delete()
	rowNum := LV_Add(, A_Now, "asdsdsd", "sdafsdgsd", "asdfsdgs333")
	rowNum := LV_Add(, "sdgvsydgs", A_Now, "3424fdsa", "sdfsdsdf")
	rowNum := LV_Add(, "wer234", "cbcbc", "xcbvxcb", "cvbcbc")
	LV_ModifyCol(1, "AutoHdr")
	LV_ModifyCol(2, "AutoHdr")
	LV_ModifyCol(3, "AutoHdr")
	LV_ModifyCol(4, "AutoHdr")
	GuiControl, PARENT:+ReDraw, %LVname%
}
;###################
DestroyGUIs(){
Gui, CHILD:Destroy
}
Danke schon mal im Voraus
Last edited by Ahk_fan on 21 Sep 2018, 16:54, edited 1 time in total.
regards,
AHK_fan :)
User avatar
nnnik
Posts: 3374
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Problem mit ListViiew in GUIs  Topic is solved

21 Sep 2018, 08:23

Selbe Problem hatte ich auch schon.
Um eine ListView verwenden zu können musst du erst das GUI welches die ListView enthält auf Default setzten.
In deinem Fall:

Code: Select all

GUI, PARENT:Default
Recommends AHK Studio
Ahk_fan
Posts: 15
Joined: 31 Aug 2018, 14:34

Re: Problem mit ListView in GUIs

21 Sep 2018, 16:57

Hallo nnnik,
Das klappt! Vielen Dank
:superhappy:
Gruß
regards,
AHK_fan :)

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 6 guests