Seite 1 von 1

ClearGadgetItems auch für Columns?

Verfasst: 27.01.2009 20:34
von TheSaint
Hallo Zusammen,

ich habe eine Frage zu einem ListviewGadget, und zwar:

ich kann ja alle Einträge in einem ListviewGadget mit dem
Befehl: ClearGadgetItems löschen.

Jedoch wie kann ich den alle Spaltenüberschriften löschen?

Mit diesem Befehl fülle ich die Spaltenüberschriften:

Code: Alles auswählen

AddGadgetColumn(#Listview_0,0,DatabaseColumnName(db, Spalten-Spalte),90)
Mit RemoveGadgetColumn(#Gadget, Spalte) kann ich immer
nur eine Spalte löschen.

Habe in der Hilfe gesucht und hier im Forum. Irgendwie hab ich nichts gefunden.

Wäre toll, wenn mir hier jemand helfen könnte.

Verfasst: 27.01.2009 20:37
von HeX0R
Wenn du eh alles löschen willst, dürfte es am schnellsten gehen, einfach das ganze Gadget neu zu erstellen.

Verfasst: 27.01.2009 20:40
von ts-soft
Du meinst ein ListIconGadget?
Wirste wohl eine schleife nehmen müssen

Verfasst: 27.01.2009 20:50
von TheSaint
Hallo HeXOR,
hallo ts-soft,

vielen Dank für Eure Hilfe.

ts-soft: Oh, Verzeihung, ja Du hast vollkommen recht, meinte ein ListiconGadget. Ja das mit der Schleife bekomme ich hin. Schade,
dachte es gebe hierfür auch einen Befehl. :)

HeXOR: Hm, muss ich dann, wenn ich das Gadget neu erstelle, immer folgenden gesamten Code aufrufen:??

Code: Alles auswählen

            AddGadgetItem(#Panel10,-1,"Informationen")  ;Register Informationen
                ContainerGadget(#Pan2, 0, 0, 679, 374, #PB_Container_Flat)
                PanelGadget(#Panel11, 5, 5, 675, 350)
                    AddGadgetItem (#Panel11, -1, "Info Suche")    ;Register Informationen / Info Suche
                        ListIconGadget(#Listview_0, 10, 200, 650, 120, "", 80,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_MultiSelect|#PB_ListIcon_HeaderDragDrop)
                        SendMessage_(GadgetID(#Listview_0), #LVM_SETEXTENDEDLISTVIEWSTYLE, 0, #LVS_EX_LABELTIP)
                CloseGadgetList()
Nochmals vielen Dank für Eure Hilfe

Verfasst: 27.01.2009 21:05
von HeX0R
Nein, das ginge auch irgendwie mit OpenGadgetList(), aber dann dürfte es wohl doch einfacher sein eine Schleife zu machen.

Verfasst: 27.01.2009 21:09
von Fluid Byte
TheSaint hat geschrieben:dachte es gebe hierfür auch einen Befehl. :)
Kannst dir ja einen schnitzen:

Code: Alles auswählen

Procedure RemoveColumns(Gadget)
	hwndHeader = SendMessage_(GadgetID(Gadget),#LVM_GETHEADER,0,0)
	Count = SendMessage_(hwndHeader,#HDM_GETITEMCOUNT,0,0)
	
	For i=Count To 1 Step -1
		RemoveGadgetColumn(0,i)
	Next
EndProcedure

OpenWindow(0,0,0,500,400,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0,0,0,0,0,"Spalte1",80)

AddGadgetColumn(0,1,"Spalte2",80)
AddGadgetColumn(0,2,"Spalte3",80)
AddGadgetColumn(0,3,"Spalte4",80)
AddGadgetColumn(0,4,"Spalte5",80)

For i=0 To 50
	AddGadgetItem(0,-1,"blah" + Chr(10) + "blah" + Chr(10) + "blah" + Chr(10) + "blah" + Chr(10) + "blah")
Next

ButtonGadget(1,5,5,100,25,"Mach weg!")

Repeat
	EventID = WaitWindowEvent()
	
	If EventID = #PB_Event_Gadget And EventGadget() = 1	
		RemoveColumns(0)
	EndIf
	
	If EventID = #PB_Event_SizeWindow
		ResizeGadget(0,5,30,WindowWidth(0)-10,WindowHeight(0)-35)
	EndIf
Until EventID = #PB_Event_CloseWindow

Verfasst: 27.01.2009 21:30
von TheSaint
Hallo HeXOR,
hallo Fluid Byte,

HeXOR: Ja, das werde ich machen.

Fluid Byte: Oh, super vielen Dank für Deinen Code Schnippsel.

Den kann ich super verwenden.

Nochmals allen vielen Dank.

Verfasst: 27.01.2009 23:25
von marco2007
..hab ich zwar noch nie gebraucht, aber ohne API:

Code: Alles auswählen

OpenWindow(0,0,0,500,400,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
ListIconGadget(0,0,0,0,0,"Spalte1",80) 

AddGadgetColumn(0,1,"Spalte2",80) 
AddGadgetColumn(0,2,"Spalte3",80) 
AddGadgetColumn(0,3,"Spalte4",80) 
AddGadgetColumn(0,4,"Spalte5",80) 

For i=0 To 50 
   AddGadgetItem(0,-1,"blah" + Chr(10) + "blah" + Chr(10) + "blah" + Chr(10) + "blah" + Chr(10) + "blah") 
Next 

ButtonGadget(1,5,5,100,25,"Mach weg!") 

Repeat 
   EventID = WaitWindowEvent() 
    
   If EventID = #PB_Event_Gadget And EventGadget() = 1 
   While GetGadgetItemText(0, -1, 0)<>""
      RemoveGadgetColumn(0, 0) 
   Wend   
   EndIf 
    
   If EventID = #PB_Event_SizeWindow 
      ResizeGadget(0,5,30,WindowWidth(0)-10,WindowHeight(0)-35) 
   EndIf 
Until EventID = #PB_Event_CloseWindow