DoneKonne wrote:So are u working on making the Resizelib threadsave?
PB4 lib updated.
Will try to remember it for the next version.dige wrote:@gnozal: could you add an pathrequester please, after the messagebox
"Install in Directory ... C:\..." .. otherwise the cancel button is'nt meaningful
thanks!
Code: Select all
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#F_LEFT
#ListIcon_SORT
#Frame3D_1
#ListIcon_STD
#String_LEFT
#String_RIGHT
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 737, 447, "BUG DEMO", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
Frame3DGadget(#F_LEFT, 10, 10, 350, 395, "PURE LV Sort")
;-
ListIconGadget(#ListIcon_SORT, 20, 30, 330, 370, "Column0", 100)
AddGadgetColumn(#ListIcon_SORT, 1, "Column1", 100)
AddGadgetColumn(#ListIcon_SORT, 2, "Column2", 100)
Frame3DGadget(#Frame3D_1, 375, 15, 350, 395, "PURE LV Sort")
;-
ListIconGadget(#ListIcon_STD, 385, 30, 330, 370, "Column0", 100)
AddGadgetColumn(#ListIcon_STD, 1, "Column1", 100)
AddGadgetColumn(#ListIcon_STD, 2, "Column2", 100)
StringGadget(#String_LEFT, 10, 415, 350, 20, "")
StringGadget(#String_RIGHT, 375, 415, 350, 20, "")
EndIf
EndIf
EndProcedure
Open_Window_0()
PureLVSORT_SelectGadgetToSort(#ListIcon_SORT, #PureLVSORT_ShowClickedHeader_IconLeft)
PureLVSORT_SetColumnType(#ListIcon_SORT, 0, #PureLVSORT_Numeric)
PureLVSORT_SetColumnType(#ListIcon_SORT, 1, #PureLVSORT_String_CaseSensitive)
PureLVSORT_SetColumnType(#ListIcon_SORT, 2, #PureLVSORT_DateDDMMYYYYHHMMSS)
time = ElapsedMilliseconds()
For n = 1 To 2000
AddGadgetItem( #ListIcon_STD, -1, Str(n) + Chr(10) + "Speed Test" + Chr(10) + FormatDate( "%dd.%mm.%yyyy %hh:%ii%:%ss", Random( Date())))
Next
SetGadgetText(#String_RIGHT, "Duration: " + Str(ElapsedMilliseconds() - time) + "ms")
time = ElapsedMilliseconds()
For n = 1 To 2000
AddGadgetItem( #ListIcon_SORT, -1, Str(n) + Chr(10) + "Speed Test" + Chr(10) + FormatDate( "%dd.%mm.%yyyy %hh:%ii%:%ss", Random( Date())))
Next
SetGadgetText(#String_LEFT, "Duration: " + Str(ElapsedMilliseconds() - time) + "ms")
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
The reason of the 'slowness' : since PB4, PureLVSORT is monitoring the #LVM_INSERTITEM / #LVM_DELETEITEM messages to reset the lParam for the LVM_SORTITEMS message (to avoid possibles crashes).dige wrote:@Gnozal: I need a temporary deactivation of PureLVSORT for some several reasons like:
PureLVSORT_Enable ( GadgetID.l, status.b )
Code: Select all
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#F_LEFT
#ListIcon_SORT
#Frame3D_1
#ListIcon_STD
#String_LEFT
#String_RIGHT
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 737, 447, "BUG DEMO", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
Frame3DGadget(#F_LEFT, 10, 10, 350, 395, "PURE LV Sort")
;-
ListIconGadget(#ListIcon_SORT, 20, 30, 330, 370, "Column0", 100)
AddGadgetColumn(#ListIcon_SORT, 1, "Column1", 100)
AddGadgetColumn(#ListIcon_SORT, 2, "Column2", 100)
Frame3DGadget(#Frame3D_1, 375, 15, 350, 395, "PURE LV Sort")
;-
ListIconGadget(#ListIcon_STD, 385, 30, 330, 370, "Column0", 100)
AddGadgetColumn(#ListIcon_STD, 1, "Column1", 100)
AddGadgetColumn(#ListIcon_STD, 2, "Column2", 100)
StringGadget(#String_LEFT, 10, 415, 350, 20, "")
StringGadget(#String_RIGHT, 375, 415, 350, 20, "")
EndIf
EndIf
EndProcedure
Open_Window_0()
time = ElapsedMilliseconds()
For n = 1 To 2000
AddGadgetItem( #ListIcon_STD, -1, Str(n) + Chr(10) + "Speed Test" + Chr(10) + FormatDate( "%dd.%mm.%yyyy %hh:%ii%:%ss", Random( Date())))
Next
SetGadgetText(#String_RIGHT, "Duration: " + Str(ElapsedMilliseconds() - time) + "ms")
time = ElapsedMilliseconds()
For n = 1 To 2000
AddGadgetItem( #ListIcon_SORT, -1, Str(n) + Chr(10) + "Speed Test" + Chr(10) + FormatDate( "%dd.%mm.%yyyy %hh:%ii%:%ss", Random( Date())))
Next
SetGadgetText(#String_LEFT, "Duration: " + Str(ElapsedMilliseconds() - time) + "ms")
PureLVSORT_SelectGadgetToSort(#ListIcon_SORT, #PureLVSORT_ShowClickedHeader_IconLeft)
PureLVSORT_SetColumnType(#ListIcon_SORT, 0, #PureLVSORT_Numeric)
PureLVSORT_SetColumnType(#ListIcon_SORT, 1, #PureLVSORT_String_CaseSensitive)
PureLVSORT_SetColumnType(#ListIcon_SORT, 2, #PureLVSORT_DateDDMMYYYYHHMMSS)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Code: Select all
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#F_LEFT
#ListIcon_SORT
#Frame3D_1
#ListIcon_STD
#String_LEFT
#String_RIGHT
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 737, 447, "BUG DEMO", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
Frame3DGadget(#F_LEFT, 10, 10, 350, 395, "PURE LV Sort")
;-
ListIconGadget(#ListIcon_SORT, 20, 30, 330, 370, "Column0", 100)
AddGadgetColumn(#ListIcon_SORT, 1, "Column1", 100)
AddGadgetColumn(#ListIcon_SORT, 2, "Column2", 100)
Frame3DGadget(#Frame3D_1, 375, 15, 350, 395, "PURE LV Sort")
;-
ListIconGadget(#ListIcon_STD, 385, 30, 330, 370, "Column0", 100)
AddGadgetColumn(#ListIcon_STD, 1, "Column1", 100)
AddGadgetColumn(#ListIcon_STD, 2, "Column2", 100)
StringGadget(#String_LEFT, 10, 415, 350, 20, "")
StringGadget(#String_RIGHT, 375, 415, 350, 20, "")
EndIf
EndIf
EndProcedure
Open_Window_0()
PureLVSORT_SelectGadgetToSort(#ListIcon_SORT, #PureLVSORT_ShowClickedHeader_IconLeft)
PureLVSORT_SetColumnType(#ListIcon_SORT, 0, #PureLVSORT_Numeric)
PureLVSORT_SetColumnType(#ListIcon_SORT, 1, #PureLVSORT_String_CaseSensitive)
PureLVSORT_SetColumnType(#ListIcon_SORT, 2, #PureLVSORT_DateDDMMYYYYHHMMSS)
time = ElapsedMilliseconds()
For n = 1 To 2000
AddGadgetItem( #ListIcon_STD, -1, Str(n) + Chr(10) + "Speed Test" + Chr(10) + FormatDate( "%dd.%mm.%yyyy %hh:%ii%:%ss", Random( Date())))
Next
SetGadgetText(#String_RIGHT, "Duration: " + Str(ElapsedMilliseconds() - time) + "ms")
PureLVSORT_ClearGadget(#ListIcon_SORT)
time = ElapsedMilliseconds()
For n = 1 To 2000
AddGadgetItem( #ListIcon_SORT, -1, Str(n) + Chr(10) + "Speed Test" + Chr(10) + FormatDate( "%dd.%mm.%yyyy %hh:%ii%:%ss", Random( Date())))
Next
SetGadgetText(#String_LEFT, "Duration: " + Str(ElapsedMilliseconds() - time) + "ms")
PureLVSORT_SelectGadgetToSort(#ListIcon_SORT, #PureLVSORT_ShowClickedHeader_IconLeft)
PureLVSORT_SetColumnType(#ListIcon_SORT, 0, #PureLVSORT_Numeric)
PureLVSORT_SetColumnType(#ListIcon_SORT, 1, #PureLVSORT_String_CaseSensitive)
PureLVSORT_SetColumnType(#ListIcon_SORT, 2, #PureLVSORT_DateDDMMYYYYHHMMSS)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Could you please try http://freenet-homepage.de/gnozal/PureLVSORT_BETA.zip ? [ANSI PB4.02 LIBRARY]dige wrote:Thank you Gnozal. The second solution is what I currently use as workaround.
Do you think a temporary en / disableing is not possible, is it?
Code: Select all
Enumeration
#Window_0
EndEnumeration
Enumeration
#F_LEFT
#ListIcon_SORT
#Frame3D_1
#ListIcon_STD
#String_LEFT
#String_RIGHT
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 737, 447, "PureLVSORT demo", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
Frame3DGadget(#F_LEFT, 10, 10, 350, 395, "PURE LV Sort")
ListIconGadget(#ListIcon_SORT, 20, 30, 330, 370, "Column0", 100)
AddGadgetColumn(#ListIcon_SORT, 1, "Column1", 100)
AddGadgetColumn(#ListIcon_SORT, 2, "Column2", 100)
Frame3DGadget(#Frame3D_1, 375, 15, 350, 395, "PURE LV Sort")
ListIconGadget(#ListIcon_STD, 385, 30, 330, 370, "Column0", 100)
AddGadgetColumn(#ListIcon_STD, 1, "Column1", 100)
AddGadgetColumn(#ListIcon_STD, 2, "Column2", 100)
StringGadget(#String_LEFT, 10, 415, 350, 20, "")
StringGadget(#String_RIGHT, 375, 415, 350, 20, "")
EndIf
EndIf
EndProcedure
Open_Window_0()
;
PureLVSORT_SelectGadgetToSort(#ListIcon_SORT, #PureLVSORT_ShowClickedHeader_IconLeft)
PureLVSORT_SetColumnType(#ListIcon_SORT, 0, #PureLVSORT_Numeric)
PureLVSORT_SetColumnType(#ListIcon_SORT, 1, #PureLVSORT_String_CaseSensitive)
PureLVSORT_SetColumnType(#ListIcon_SORT, 2, #PureLVSORT_DateDDMMYYYYHHMMSS)
;
time = ElapsedMilliseconds()
For n = 1 To 2000
AddGadgetItem(#ListIcon_STD, -1, Str(n) + Chr(10) + "Speed Test" + Chr(10) + FormatDate( "%dd.%mm.%yyyy %hh:%ii%:%ss", Random( Date())))
Next
SetGadgetText(#String_RIGHT, "Duration: " + Str(ElapsedMilliseconds() - time) + "ms")
;
PureLVSORT_Disabled(#True) ; Try with this line and without ...
;
time = ElapsedMilliseconds()
SendMessage_(GadgetID(#ListIcon_SORT), #WM_SETREDRAW, #False, 0) ; even faster ... ;-)
For n = 1 To 2000
AddGadgetItem(#ListIcon_SORT, -1, Str(n) + Chr(10) + "Speed Test" + Chr(10) + FormatDate( "%dd.%mm.%yyyy %hh:%ii%:%ss", Random( Date())))
Next
SendMessage_(GadgetID(#ListIcon_SORT), #WM_SETREDRAW, #True, 0)
SetGadgetText(#String_LEFT, "Duration: " + Str(ElapsedMilliseconds() - time) + "ms")
;
PureLVSORT_Disabled(#False)
;
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
The test library is ANSI - STANDARD - PB4.02dige wrote:@Gnozal: Is the library the threadsafe one or standard?