Page 3 of 6

Posted: Wed Sep 27, 2006 7:50 am
by gnozal
Konne wrote:So are u working on making the Resizelib threadsave?
Done
PB4 lib updated.

Posted: Sat Sep 30, 2006 3:38 am
by Amundo
Dear gnozal,

You seem to just give tirelessly of your talents and time!

Is there no end to your generosity?

Thanks again and again!

Posted: Fri Nov 03, 2006 6:46 pm
by DevilDog
Gnozal or anyone who knows....

Any other place to download this lib?

The link to http://people.freenet.de/gnozal/PureSMTP_.zip is broken. :(

Thanks

Posted: Fri Nov 03, 2006 7:15 pm
by ts-soft
@DevilDog
Link works for me

Posted: Sat Nov 04, 2006 3:15 pm
by gnozal
AFAIK all links work.
An alternative download place (may not always be the last versions though) : http://www.purearea.net/pb/english/userlibs.php

Posted: Sun Nov 05, 2006 5:16 am
by DevilDog
Thanks, I got it.

There must have been some kind of firewall filter to it from where I was.

Posted: Mon Oct 22, 2007 9:33 am
by gnozal
Updated all PB4.0x / PB4.1x libraries

Changes :
- updated library installer : fixed PB folder detection for PB4.10 beta 4

Posted: Tue Oct 23, 2007 8:31 am
by dige
@gnozal: could you add an pathrequester please, after the messagebox
"Install in Directory ... C:\..." .. otherwise the cancel button is'nt meaningful
thanks!

Posted: Tue Oct 23, 2007 9:04 am
by gnozal
dige wrote:@gnozal: could you add an pathrequester please, after the messagebox
"Install in Directory ... C:\..." .. otherwise the cancel button is'nt meaningful
thanks!
Will try to remember it for the next version.
In the mean time, please note that the installer is a self-extracting ZIP archive, so you can open it with any archiver.

Posted: Mon Oct 29, 2007 10:56 am
by dige
@Gnozal: I need a temporary deactivation of PureLVSORT for some several reasons like:

PureLVSORT_Enable ( GadgetID.l, status.b )

One reason is to prevent a sort during update of listview items.
And the second is, that AddGadgetItem() is very slow, if PureLVSort
is activated.

Pls try this:

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

Thank you for your support :D

Posted: Mon Oct 29, 2007 12:19 pm
by gnozal
dige wrote:@Gnozal: I need a temporary deactivation of PureLVSORT for some several reasons like:
PureLVSORT_Enable ( GadgetID.l, status.b )
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).
What you can do about it :
1. Enable PureLVSORT *after* having populated the listicon

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
2. If you can't use solution 1, use PureLVSORT_ClearGadget() to disable the library and the use PureLVSORT_SelectGadgetToSort() again.

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
I hope this helps.

Posted: Mon Oct 29, 2007 12:31 pm
by dige
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?

Posted: Mon Oct 29, 2007 12:38 pm
by gnozal
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?
Could you please try http://freenet-homepage.de/gnozal/PureLVSORT_BETA.zip ? [ANSI PB4.02 LIBRARY]
New function : PureLVSORT_Disabled(#True/#False)
It's almost as fast as PureLVSORT_ClearGadget().

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

Posted: Tue Oct 30, 2007 4:34 pm
by dige
@Gnozal: Is the library the threadsafe one or standard?

Posted: Tue Oct 30, 2007 4:38 pm
by gnozal
dige wrote:@Gnozal: Is the library the threadsafe one or standard?
The test library is ANSI - STANDARD - PB4.02