Einzelnen Eintrag in Listview-Gadget deaktivieren
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Einzelnen Eintrag in Listview-Gadget deaktivieren
Hi!
Kann man auch nur einen Eintrag in einem ListviewGadget unanwählbar machen, oder kann man nur das ganze Gadget unbrauchbar machen?
MfG, Mok
Kann man auch nur einen Eintrag in einem ListviewGadget unanwählbar machen, oder kann man nur das ganze Gadget unbrauchbar machen?
MfG, Mok
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
@Mok
Hallo,
ich habe bei MSDN und in Foren geguckt, aber ich habe leider nix gefunden.
Hab mal trotzdem eine Alternative ausgedacht, vielleicht ist das für dich trotzdem hilfreich:
Hallo,
ich habe bei MSDN und in Foren geguckt, aber ich habe leider nix gefunden.
Hab mal trotzdem eine Alternative ausgedacht, vielleicht ist das für dich trotzdem hilfreich:
Code: Alles auswählen
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ListViewGadget(1,10,10,480,230,0)
AddGadgetItem(1,-1,"Item 1",0,0)
AddGadgetItem(1,-1,"Item 2",0,0)
AddGadgetItem(1,-1,"Item 3",0,0)
AddGadgetItem(1,-1,"Item 4",0,0)
AddGadgetItem(1,-1,"Item 5",0,0)
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
Select EventGadget()
Case 1
If GetGadgetState(1)=0
SetGadgetState(1,1)
EndIf
EndSelect
EndIf
If EventID=#PB_Event_CloseWindow
Quit=1
EndIf
Until Quit=1
EndIf
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Sorry, hab vergessen zu sagen, dass ich noch mit 3.94 arbeite.
Außerdem macht dein Code doch die ganze Listview unanwählbar, oder lese ich da etwas falsch?
Außerdem macht dein Code doch die ganze Listview unanwählbar, oder lese ich da etwas falsch?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Arg!Mok hat geschrieben:Sorry, hab vergessen zu sagen, dass ich noch mit 3.94 arbeite.

Nein, nur der erste Eintrag ist unanwählbar (GetGadgetState(1)=0).Mok hat geschrieben:Außerdem macht dein Code doch die ganze Listview unanwählbar, oder lese ich da etwas falsch?
Und wenn dein erster Eintrag also die Position 0 ausgewählt wurde, dann springt er zum 2.Eintrag, also die Position 1: SetGadgetState(1,1)PureBasic Hilfe hat geschrieben:GetGadgetState(): ermittelt den Index vom ausgewählten Eintrag
\\Edit:
Müsste doch so funktionieren:
Code: Alles auswählen
If OpenWindow(0,0,0,500,250,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Window")
If CreateGadgetList(WindowID(0))
ListViewGadget(1,10,10,480,230,0)
AddGadgetItem(1,-1,"Item 1",0)
AddGadgetItem(1,-1,"Item 2",0)
AddGadgetItem(1,-1,"Item 3",0)
AddGadgetItem(1,-1,"Item 4",0)
AddGadgetItem(1,-1,"Item 5",0)
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
Select EventGadgetID()
Case 1
If GetGadgetState(1)=0
SetGadgetState(1,1)
EndIf
EndSelect
EndIf
If EventID=#PB_Event_CloseWindow
Quit=1
EndIf
Until Quit=1
EndIf
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Na ja, #Listview_0 eben.RSBasic hat geschrieben:@Mok
Funktioniert bei dir ohne Anpassung mein Code überhaupt?
Bei mir funktioniert es mit 4.2 und mit 3.93.
Hast du bei:
>Case 1
>>If GetGadgetState(1)=0
>>>SetGadgetState(1,1)
>>EndIf
wirklich die richtigen Gadgetnummer eingegeben?
Edit
Bevor jetzt jemand die Kristallkugel holt:
Code: Alles auswählen
If EventID=#PB_Event_Gadget
Select EventGadgetID()
Case 1
If GetGadgetState(#Listview_0)=0
SetGadgetState(#Listview_0,1)
EndIf
EndSelect
EndIf
Ich hab jetzt auch bei mir alle Einträge auf -1 gesetzt
Zuletzt geändert von Mok am 02.11.2008 20:00, insgesamt 1-mal geändert.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Dann eher so:
Code: Alles auswählen
If EventID=#PB_Event_Gadget
Select EventGadgetID()
Case #Listview_0
If GetGadgetState(#Listview_0)=0
SetGadgetState(#Listview_0,1)
EndIf
EndSelect
EndIf
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Funzt nicht.
Nochmal:

Und könnten wir evtl. den Code an den folgenden anpassen (hab ich mit Visual Designer gemacht):
Code: Alles auswählen
If EventID=#PB_Event_Gadget
Select EventGadgetID()
Case #Listview_0
If GetGadgetState(#Listview_0)=0
SetGadgetState(#Listview_0,1)
EndIf
EndSelect
EndIf

Und könnten wir evtl. den Code an den folgenden anpassen (hab ich mit Visual Designer gemacht):
Code: Alles auswählen
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindowID() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadgetID() ; Is it a gadget event?
EventType = EventType() ; The event type
;You can place code here, and use the result as parameters for the procedures
If Event = #PB_EventGadget
If GadgetID = #String_0
ElseIf GadgetID = #Radio_0
ElseIf GadgetID = #Radio_1
ElseIf GadgetID = #CheckBox_0
ElseIf GadgetID = #Radio_2
ElseIf GadgetID = #String_2
ElseIf GadgetID = #Listview_0
ElseIf GadgetID = #CheckBox_1
ElseIf GadgetID = #Image_0
Beep_(400,200)
Beep_(600,200)
Beep_(800,200)
Beep_(1000,200)
Beep_(1200,300)
Beep_(400,200)
ElseIf GadgetID = #CheckBox_3
status_checkbox_3 = GetGadgetState(#CheckBox_3)
If status_checkbox_3 = 1
DisableGadget(#String_2, 0)
Else
DisableGadget(#string_2,1)
EndIf
ElseIf GadgetID = #Button_0
ElseIf GadgetID = #Button_1
End
EndIf
EndIf
EventID = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Code: Alles auswählen
Enumeration
#String_0
#String_2
#Radio_0
#Radio_1
#Radio_2
#CheckBox_0
#CheckBox_1
#CheckBox_3
#Listview_0
#Image_0
#Button_0
#Button_1
EndEnumeration
If OpenWindow(0,0,0,500,250,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Window")
If CreateGadgetList(WindowID(0))
ListViewGadget(#Listview_0,10,10,480,230,0)
AddGadgetItem(#Listview_0,-1,"Item 1",0)
AddGadgetItem(#Listview_0,-1,"Item 2",0)
AddGadgetItem(#Listview_0,-1,"Item 3",0)
AddGadgetItem(#Listview_0,-1,"Item 4",0)
AddGadgetItem(#Listview_0,-1,"Item 5",0)
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
Select EventGadgetID()
Case #Listview_0
If GetGadgetState(#Listview_0)=0
SetGadgetState(#Listview_0,1)
EndIf
Case #Radio_0
Case #Radio_1
Case #CheckBox_0
Case #Radio_2
Case #String_2
Case #CheckBox_1
Case #Image_0
Beep_(400,200)
Beep_(600,200)
Beep_(800,200)
Beep_(1000,200)
Beep_(1200,300)
Beep_(400,200)
Case #CheckBox_3
status_checkbox_3 = GetGadgetState(#CheckBox_3)
If status_checkbox_3 = 1
DisableGadget(#String_2, 0)
Else
DisableGadget(#string_2,1)
EndIf
Case #Button_0
Case #Button_1
End
EndSelect
EndIf
If EventID=#PB_Event_CloseWindow
Quit=1
EndIf
Until Quit=1
EndIf