Hallo Just Me, WOW das ist wirklich Cool, danke fürs teilen!
Hier der Link für den interessierten Leser:
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=3852
Ich habe deinen Code folgendermaßen umgesetzt und es funktioniert tadellos:
Beim ersten Klick auf eine Zelle wird die gesamte Zeile [Zeilenfarbe] farbig markiert und die angeklickte Zelle darin bekommt eine andere Farbe [Zellenfarbe].
Weitere Klicks in der gleichen Zeile ändern die jeweils angeklickte Zelle [Zellenfarbe] ebenfalls
Falsch gesetzte Farben [Zellenfarbe] werden durch wiederholtes klicken auf die vorher falsch markierte Zelle wieder aufgehoben, wobei die [Zeilenfarbe] beim ersten klick auf eine vorher falsch markierte Zelle auch wieder im Original Zustand ist.
Zur Zeit drückt mich die Frage, wie ich am effizientesten alle im GUI enthaltenen ListView nach Farbig markierten Zellen durchsuche und bevor ich jetzt anfange 'rumZuLoopen', frage ich lieber mal ob es in deinem Code schon etwas fertiges gibt...
- LVA_SetCell.jpeg (66.11 KiB) Viewed 847 times
Code: Select all
....
Gui, Show
Loop, % maxListViews
If (A_Index > 9)
LVA_ListViewAdd("LV" A_Index, "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV00", "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV01", "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV02", "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV03", "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV04", "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV05", "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV06", "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV07", "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV08", "+AR cfFF0000 cbFFDD99")
LVA_ListViewAdd("LV09", "+AR cfFF0000 cbFFDD99")
OnMessage("0x4E", "LVA_OnNotify")
Return
....
LVClick18:
LVClick19:
LVClick:
LVvar := "LV" SubStr(A_ThisLabel, -1) ; LV00.. LV%maxListViews%..
if (A_GuiEvent = "Normal")
{
LVA_GetCellNum(0, A_GuiControl)
LVAInfoStatus := LVA_Info("GetCellType", LVvar, LVA_GetCellNum("Row"), LVA_GetCellNum("Col")) ; ZellenStatus
If !LVAInfoStatus {
If (SubStr(A_ThisLabel, -1) = 10) ; ListView "LV10" 'Tab Arbeitsplatz' andere farbe
LVA_SetCell(LVvar, LVA_GetCellNum("Row"), 0, "Purple", "white") ; zeile komplett farbig markieren
else ; restliche Tabs
LVA_SetCell(LVvar, LVA_GetCellNum("Row"), 0, "maroon", "white") ; zeile komplett farbig markieren
LVA_SetCell(LVvar, LVA_GetCellNum("Row"), LVA_GetCellNum("Col"), "Green", "white") ; angeklickte zelle farbig markieren
Send, {DOWN}
} else {
LVA_SetCell(LVvar, LVA_GetCellNum("Row"), 0, "", "") ; zeile komplett farbig demarkieren
LVA_SetCell(LVvar, LVA_GetCellNum("Row"), LVA_GetCellNum("Col"), "", "") ; angeklickte zelle farbig demarkieren
Send, {DOWN}
}
; MsgBox,,, % LVAInfoStatus := LVA_Info("GetCellType", LVvar, LVA_GetCellNum("Row"), LVA_GetCellNum("Col")),1
lva_Refresh(LVvar)
}
xl=
return