- Offizieller Beitrag
Ich habe ein Listview (List), bei dem ich gern eine Zeile markieren will (mache ich mit "state=wListStateDropHighlighted").
Soweit so gut! Das funktioniert.
Jetzt will ich aber verhindern, dass der Benutzer eine andere Zeile markieren/anklicken kann. Wie geht das?
Ich will aber nicht das ganze Listview deaktivieren (mit disable), weil man dann nicht mehr scrollen kann.
Hier mal ein Beispiel:
Code
import wNim
let app = App()
let frame = Frame(title="Test", size=(800, 340))
let panel = Panel(frame)
let listHighScore = ListCtrl(panel, style=wLcReport or wBorderDouble or wLcSingleSel, pos=(10, 10), size=(645, 252))
listHighScore.appendColumn("Platz", width=100) # bei der ersten Spalte funktioniert "format=wListFormatCenter" nicht
listHighScore.setColumnFormat(0, wListFormatCenter) # deswegen hier als extra Zeile
listHighScore.appendColumn("Name", width=250, format=wListFormatLeft)
listHighScore.appendColumn("Punkte", width=130, format=wListFormatRight)
for i in 1..99:
listHighScore.appendItem($i)
listHighScore.setItemText(i - 1, 1, "Computer")
listHighScore.setItemText(i - 1, 2, $(100 - i))
listHighScore.ensureVisible(66) # sicherstellen, dass der Platz 67 in der List zu sehen ist
listHighScore.setItem(66, state=wListStateDropHighlighted) # den Platz 67 markieren
# listHighScore.disable # <- das nicht, weil man dann nicht mehr scrollen kann
frame.center()
frame.show()
app.mainLoop()
Alles anzeigen