Seite 1 von 2
ScrollBar im ListIconGadget erzwingen
Verfasst: 29.11.2005 01:21
von Jake
Ich möchte eine ScrollBar im ListIconGadget erzwingen. Das geht auch solange nichts drin steht, aber sobald ich was reinschreibe ist die ScrollBar wider weg.
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Enumeration
#ListIcon_0
EndEnumeration
OpenWindow(#Window_0, 216, 0, 600, 300, #PB_Window_SystemMenu | #PB_Window_TitleBar , "New window ( 0 )")
CreateGadgetList(WindowID())
ListIconGadget(#ListIcon_0, 70, 40, 370, 190, "Column1", 100)
ShowScrollBar_(GadgetID(#ListIcon_0),#SB_VERT,#True)
AddGadgetItem(#ListIcon_0, -1, "Test")
Repeat
Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow
Kommentiert mal AddGadgetItem aus und ihr werdet sehen das es dann geht. Warum ist das so?
Re: ScrollBar im ListIconGadget erzwingen
Verfasst: 29.11.2005 14:52
von hiltwin
Jake hat geschrieben:
Kommentiert mal AddGadgetItem aus und ihr werdet sehen das es dann geht. Warum ist das so?
Ich kann Dir nicht sagen, warum das so ist. Allerdings hatte ich ein anderes Problem mit nen ListIconGadget und ts-soft hat ein nettes Kurzprogramm gebastelt, bei dem dann auch ein Scrollbalken auftaucht ...
Link ist hier
http://forums.purebasic.com/german/viewtopic.php?t=5776
Vielleicht hilft es Dir ja auch ;o)
Ansonsten erzwingst Du ein Scroll auch dann, wenn Du die Masse des Gadgets kleiner als die Breite aller Spalten und kleiner als die Menge aller Zeilen definierst ...
Verfasst: 29.11.2005 18:12
von Jake
Das hilf mir leider nicht. Da ist auch erst eine Scrollbar wenn der Inhalt des ListIconGadgets größer ist als der angezeigte Bereich und das ist Standart.
Ich möchte aber das immer eine Scrollbar da ist.
hiermit ginge es per beginn
Verfasst: 29.11.2005 18:36
von hiltwin
Code: Alles auswählen
; PureBasic Visual Designer v3.90 build 1361
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#ListIcon_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 0 )")
If CreateGadgetList(WindowID())
;-
ListIconGadget(#ListIcon_0, 90, 55, 100, 165, "Column1", 105)
EndIf
EndIf
EndProcedure
Open_Window_0()
For abc = 0 To 10
AddGadgetItem(#ListIcon_0, -1, "Test")
Next
ActivateGadget(#ListIcon_0)
;SetGadgetState(#ListIcon_0, 1)
SetGadgetItemState(#ListIcon_0, 0, #PB_ListIcon_Selected)
Programmschleifenstart:
Repeat
Event = WindowEvent()
WindowID = EventWindowID()
Until WindowID=#Window_0 And event= #PB_Event_CloseWindow
Ergebnis=MessageRequester("Programm schliessen", "Programm wirklich beenden?", #PB_MessageRequester_YesNoCancel)
If Ergebnis=7 Or Ergebnis=2
Goto Programmschleifenstart
EndIf
End
;
1.)
ListIconGadget(#ListIcon_0, 90, 55, 100, 165, "Column1", 105)
hinten die Breite der Spalte 105 ist grösser als die Gadgetbreite 100 ...
für den horizontalen Scrollbalken
2.)
For abc = 0 To 10
AddGadgetItem(#ListIcon_0, -1, "Test")
Next
sind mehr Items angelegt, als das Gadget hoch, ist der vertikale Scrollbalken auch von Beginn an da ...
Ist zwar nur Stückwerk, aber vielleicht hilfts, bis einer der Profis etwas besseres für Dich hat ...
Verfasst: 29.11.2005 21:07
von Jake
Ist alles nett gemeint von euch aber genau dass will ich nicht und ist mir auch bekannt da es der Standard ist.
Evtl. ist da ja nicht richtig rüber gekommen. Ich möchte daß der Scrollbalken eingeblendet wird auch wenn er gar nicht benötigt wird. Also ohne einen breiten Header oder eine lange Liste.
Der Sinn ist das das Layout des Fensters bzw. speziell des ListIconGadgets sich nicht verändert wenn der User in das ListIconGadget so viele Einträge eingibt das die Scrollbar automatisch eingeblendet wird.
Verfasst: 30.11.2005 20:44
von ts-soft
Beim erstellen des ListIconGadget, als letzten zusätzlichen Parameter:
also als opt. Flags
Verfasst: 30.11.2005 23:17
von Jake
#LBS_DISABLENOSCROLL - geht leider auch nicht. Dann erscheint nichtmal das Eingefügte Item.
Ich habe mir im PSDK den Eintrag dazu durchglesen und meine es sollte doch gehen. Kann es sein das ich das ListIconGadget dann mit der CreateWindow API erstellen muß?
Verfasst: 01.12.2005 03:06
von edel
Es handelt sich ja auch um 2 verschiedene Fensterklassen , einmal die
Listbox und dann SysListView32 . Fuer die Listviewklasse musst du dann
LVS nehmen , falls es die Konstante dort uberhaupt gibt.
Verfasst: 01.12.2005 03:35
von ts-soft
>> falls es die Konstante dort uberhaupt gibt
Dort gibt es nur das Gegenteil: #LVS_NOSCROLL
Pech gehabt

Verfasst: 01.12.2005 18:17
von Jake
Das hört sich nicht gut an. Wit anderen Worten das geht überhaupt nicht es sei denn ich Nehme ein ListViewGadget.
Da kann man aber keine Gridlines und keinen Hearder einblenden oder irre ich mich.