Ich habe mich leider zu verworren ausgedrückt, sorry aber das passiert schon mal.
Ich wollte nur wissen wie ich eine einmal mit
Gui, Add, ListView, w500 r%GuiRow% gMeineListView... festgelegte GuiRow Variable nachträglich verändern kann, bzw. ob das überhaupt geht.
zu
GuiRows := GpsDetails.Count() + FileDetails.Count() bleibt nur zu sagen, das mir grade die Worte fehlen
Ich hatte das Pferd von hinten aufgezäumt, weil der Grundgedanke war der Ternary zu
GuiRow := (GuiRows>40?40:GuiRows+1)
und nicht das zählen. Da sah ich viele Bäume und wenig Wald.
Code: Select all
GpsDetails := GetGpsData(QuellDatei)
FileDetails := GetFileDetails(QuellDatei, GetDetailIndex(PropNames))
GuiRows := GpsDetails.Count() + FileDetails.Count()
GuiRow := (GuiRows>40?40:GuiRows+1) ; MaximaleMengeSpalten
Gui, Margin, 2, 2
Gui, Add, ListView, w500 r%GuiRow% gMeineListView vvMeineListView2 vListViewName1 Grid cBlack BackgroundFFDD99, ID|PropName|PropValue
Gui, ListView, ListViewName1
for i, x in FileDetails
{
%i% := x
SaveAll .= SessionID ";" StrReplace(i, A_Space, "") ";" x "`n"
LV_Add("", SessionID, i, x)
}
for i, x in GpsDetails
{
%i% := x
SaveAll .= SessionID ";" StrReplace(i, A_Space, "") ";" x "`n"
LV_Add("", SessionID, i, x)
}
LV_Add("", SessionID, "ID", SessionID) ; GuiRow +1
if (xLongitude(Longitude)) and (xLatitude(Latitude))
{
Längengrad := xLongitude(Longitude)
Breitengrad := xLatitude(Latitude)
LV_Add("", SessionID, "Längengrad", xLongitude(Longitude)) ; GuiRow +1
LV_Add("", SessionID, "Breitengrad", xLatitude(Latitude)) ; GuiRow +1
LV_Add("", SessionID, "GoogleMaps", "https://www.google.com/maps/place/" GoogleLatLong(Latitude, Longitude)) ; GuiRow +1
LV_Add("", SessionID, "Openata", openataLatLong(Latitude, Longitude)) ; GuiRow +1
Opencagedata := "https://api.opencagedata.com/geocode/v1/xml?roadinfo=1&pretty=1&q=" GoogleLatLong(Latitude, Longitude) "&key=" OpencagedataKey "&language=de&pretty=1"
LV_Add("", SessionID, "Opencagedata", Opencagedata) ; GuiRow +1
SaveAll .= (SessionID ";" "Openata" ";" openataLatLong(Latitude, Longitude)) "`n"
SaveAll .= (SessionID ";" "Längengrad" ";" xLongitude(Longitude)) "`n"
SaveAll .= (SessionID ";" "Breitengrad" ";" xLatitude(Latitude)) "`n"
SaveAll .= (SessionID ";" "GoogleMaps" ";" "https://www.google.com/maps/place/" GoogleLatLong(Latitude, Longitude)) "`n"
}
Sort, SaveAll
FileDelete, % SessionID ".txt"
FileAppend, % SaveAll, % SessionID ".txt"
;run % SessionID ".txt"
LV_ModifyCol(2, "sort")
LV_ModifyCol()
; LV_ModifyCol(1, 230)
LV_ModifyCol(1, 30)
LV_ModifyCol(2, 130)
LV_ModifyCol(3, 310)
Menu, MeinKontextmenue, Add, Öffnen, Oeffnen
Menu, MeinKontextmenue, Add, Copy, Copy
; Gui, Show, h800 w1479, FileInfos: %GuiRows% - ID: %SessionID%
Gui, Show, w1479, FileInfos: %GuiRows% - ID: %SessionID%
Return
; ....
;--------------
xLatitude(Byref Latitude){
xLatitude := StrSplit(Latitude, A_Space, ",")
xLatitudeArr := StrSplit(xLatitude.3, ".")
Breitengrad := Ceil(xLatitude.1) "."
. Ceil(xLatitude.2)
. xLatitudeArr.1
. SubStr(xLatitudeArr.2, 1, 1)
Return Breitengrad
}
;--------------
xLongitude(Byref Longitude){
xLongitude := StrSplit(Longitude, A_Space, ",")
xLongitudeArr := StrSplit(xLongitude.3, ".")
Laengengrad := Ceil(xLongitude.1) "."
. Ceil(xLongitude.2)
. xLongitudeArr.1
. SubStr(xLongitudeArr.2, 1, 1)
Return Laengengrad
}
Wenn GPS Daten vorhanden sind, erzeuge ich den link zur
Maps Webseite oder z.B. zu
api.opencagedata.com.
Das sind aktuell GuiRow +5
Die XML Antwort von
opencagedata hat nochmal etliche Infos, welche ich noch auslesen möchte, für all diese neuen Daten muss ich nachträglich die GuiRow´s ändern.
Und die Daten von
api.opencagedata.com sind nicht Statisch. Je nach Location kommen schon mal doppelt so viele Daten zurück.
Wenn das zu stressig wird, baue ich den Code so um das es passt, aber wenn mein Wunschgedanke war, dass es nur ein Einzeiler ist mit dem ich die Rows in einer ListView nachträglich ändern kann
Ich wünsche euch allen einen schönen Abend
- 2020-10-28 at 19.21.49.jpeg (103.02 KiB) Viewed 1265 times