Re: Gnozal libraries for PB4.xx
Posted: Sun May 16, 2010 1:03 pm
http://www.purebasic.com
https://www.purebasic.fr/english/
Thanx!QuimV wrote:hi @doctorized
Here are the links updated:
PB4.5x : http://gnozal.ucoz.com/PureCOLOR_450.zip
PB4.5x : http://gnozal.ucoz.com/PureZIP_450.zip
PB4.5x : http://gnozal.ucoz.com//PureLVSORT_450.zip
Regards
Code: Select all
Global *OriginalListBuffer
Procedure MyFilterCallback(GadgetNumber.l, FilterString.s, ListIconColumn.l, EventCode.l) ; simple filter example
If EventCode = #PureLVSORT_FilterBtnClick
FilterString = Trim(FilterString)
If *OriginalListBuffer
PureLVSORT_LoadListIconFromMem(GadgetNumber, *OriginalListBuffer, "", ListIconColumn, #True)
EndIf
If Len(FilterString) = 0
ProcedureReturn
EndIf
*ListBuffer = *OriginalListBuffer
SpacesCount = CountString(FilterString, " ")
WordsCount = SpacesCount + 1
For w = 1 To WordsCount
Word.s = StringField(FilterString, w, " ")
If *ListBuffer
PureLVSORT_LoadListIconFromMem(GadgetNumber, *ListBuffer, Word, ListIconColumn, #True)
*ListBuffer = PureLVSORT_SaveListIconToMem(GadgetNumber)
EndIf
Next
EndIf
EndProcedure
;
#Window_0 = 0
#ListIcon_0 = 0
;
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 602, 302, "PureLVSORT Test", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
ListIconGadget(#ListIcon_0, 5, 5, 590, 285, "String", 110)
AddGadgetColumn(#ListIcon_0, 1, "Numeric", 110)
AddGadgetColumn(#ListIcon_0, 2, "Float", 110)
AddGadgetColumn(#ListIcon_0, 3, "DateDDMMYYYY", 120)
AddGadgetColumn(#ListIcon_0, 4, "DateMMDDYYYY", 120)
AddGadgetItem(#ListIcon_0, -1, "ABCDE RTGFG" + Chr(10) + "514" + Chr(10) + "0.9" + Chr(10) + "31/12/2004" + Chr(10) + "12/31/2004")
AddGadgetItem(#ListIcon_0, -1, "ACDEF RTGFG" + Chr(10) + "118" + Chr(10) + "1.9" + Chr(10) + "11/12/2004" + Chr(10) + "12/11/2004")
AddGadgetItem(#ListIcon_0, -1, "ZABCD RTGFG" + Chr(10) + "-414" + Chr(10) + "7.0" + Chr(10) + "21/01/2003" + Chr(10) + "01/21/2003")
AddGadgetItem(#ListIcon_0, -1, "DEFGH RTGFG" + Chr(10) + "524" + Chr(10) + "900" + Chr(10) + "10/06/2001" + Chr(10) + "06/10/2001")
AddGadgetItem(#ListIcon_0, -1, "AFFGH RTGFG" + Chr(10) + "352" + Chr(10) + "911" + Chr(10) + "10/06/2004" + Chr(10) + "06/10/2003")
AddGadgetItem(#ListIcon_0, -1, "ZSFZI RTGFG" + Chr(10) + "574" + Chr(10) + "921" + Chr(10) + "10/06/2002" + Chr(10) + "06/10/2004")
AddGadgetItem(#ListIcon_0, -1, "ZEKZH RTGFG" + Chr(10) + "521" + Chr(10) + "931" + Chr(10) + "10/06/2011" + Chr(10) + "06/10/2005")
AddGadgetItem(#ListIcon_0, -1, "ZFFGH RTGFG" + Chr(10) + "523" + Chr(10) + "913" + Chr(10) + "10/06/2011" + Chr(10) + "06/10/2001")
AddGadgetItem(#ListIcon_0, -1, "AZFHI RTGFG" + Chr(10) + "522" + Chr(10) + "923" + Chr(10) + "10/06/2006" + Chr(10) + "06/10/2001")
AddGadgetItem(#ListIcon_0, -1, "AEZGH RTGFG" + Chr(10) + "529" + Chr(10) + "933" + Chr(10) + "10/06/2000" + Chr(10) + "06/11/2001")
AddGadgetItem(#ListIcon_0, -1, "DZFKH RTGFG" + Chr(10) + "624" + Chr(10) + "900" + Chr(10) + "10/07/2001" + Chr(10) + "06/11/2001")
AddGadgetItem(#ListIcon_0, -1, "DEFGI RTGFG" + Chr(10) + "625" + Chr(10) + "900" + Chr(10) + "10/08/2001" + Chr(10) + "06/11/2001")
AddGadgetItem(#ListIcon_0, -1, "DSFKH RTGFG" + Chr(10) + "623" + Chr(10) + "900" + Chr(10) + "10/09/2001" + Chr(10) + "06/11/2001")
EndIf
EndProcedure
;
Open_Window_0()
;
If PureLVSORT_SelectGadgetToSort(#ListIcon_0, #PureLVSORT_ShowClickedHeader_IconLeft) = #PureLVSORT_Ok
PureLVSORT_SetColumnType(#ListIcon_0, 0, #PureLVSORT_String) ; default, not necessary
PureLVSORT_SetColumnType(#ListIcon_0, 1, #PureLVSORT_Numeric)
PureLVSORT_SetColumnType(#ListIcon_0, 2, #PureLVSORT_Float)
PureLVSORT_SetColumnType(#ListIcon_0, 3, #PureLVSORT_DateDDMMYYYY)
PureLVSORT_SetColumnType(#ListIcon_0, 4, #PureLVSORT_DateMMDDYYYY)
PureLVSORT_SortListIconNow(#ListIcon_0, 3, 1)
*OriginalListBuffer = PureLVSORT_SaveListIconToMem(#ListIcon_0)
PureLVSORT_DefineFilterCallback(@MyFilterCallback())
PureLVSORT_SetFilterTimeOut(100)
PureLVSORT_SetFilter(#ListIcon_0)
EndIf
;
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
If *ListBuffer
FreeMemory(*ListBuffer)
EndIf
End
There is an issue with Windows Se7en, posted by QuimV, which tested a lot of code on his Win7 machine (thread : http://www.purebasic.fr/english/viewtop ... &start=277).linkerstorm wrote:...if I blank the filter in the filter field, the list stays empty.
This last behavior exists also in your original example : this is because the FilterString parameter contains some weird chars, I don't know why.
These constants have the same values. I forgot to update the help file.linkerstorm wrote:An aside on your help file : in the PureLVSORT_DefineFilterCallback() page, you talk about "#HDN_FILTERCHANGE or #HDN_FILTERBTNCLICK events." and in your original above example, the code refers to "#PureLVSORT_FilterChange"; in my adapted example, the code refers to "#PureLVSORT_FilterBtnClick".
I do not fully understand your code, but I don't think it's possible / convenient to call PureLVSORT_LoadListIconFromMem() repeatedly to achieve want you want.linkerstorm wrote:Up again.
So it seems to be a common controls issue.linkerstorm wrote:For the Windows 7 issue, if you disable the Support XP Theme in your project properties, the bug disappears.