Hallo erst mal und frohes neues Jahr!
Ich habe bereits gesucht, aber nichts gefunden:
Wie erhalte ich EINE Rückmeldung (falls das möglich ist), wenn PureLVSort einen Sortiervorgang abgeschlossen hat?
Mit der Callback-Funktion habe ich es probiert, allerdings bekomme ich dann scheinbar bei jeder umsortierten Zeile eine Rückmeldung, was das Programm natürlich "zunagelt".
Schönen Dank schon mal,
Michael
PureLVSort > Rückmeldung nach erfolgtem Sortieren?
PureLVSort > Rückmeldung nach erfolgtem Sortieren?
WinVista Ultimate/HomePremium , PB 4.20
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Hi!
Wenn ich das richtig verstanden habe, muss ich
1. eine Spalte als UserCallback definieren per PureLVSORT_SetColumnType
2. PureLVSORT_DefineUserCallback(@MySortingCallback()) nutzen
3. Procedure MySortingCallback(ListIconNumber.l, ListIconColumn.l, Item1.s, Item2.s) nutzen, um das Sortieren abzufragen.
Hier bekomme ich zwar eine Rückmeldung, aber jedes mal, wenn eine Zeile umsortiert wurde, nicht wenn der gesamte Vorgang abgeschlossen ist, so wie ich es gern hätte. Ich benötige aus der Rückmeldung eigentlich auch nur die ListIconNumber, um festzustellen, welches sortiert wurde.
Ich habe bestimmt grad einen Denkfehler! Hilfe!
Michael
Wenn ich das richtig verstanden habe, muss ich
1. eine Spalte als UserCallback definieren per PureLVSORT_SetColumnType
2. PureLVSORT_DefineUserCallback(@MySortingCallback()) nutzen
3. Procedure MySortingCallback(ListIconNumber.l, ListIconColumn.l, Item1.s, Item2.s) nutzen, um das Sortieren abzufragen.
Hier bekomme ich zwar eine Rückmeldung, aber jedes mal, wenn eine Zeile umsortiert wurde, nicht wenn der gesamte Vorgang abgeschlossen ist, so wie ich es gern hätte. Ich benötige aus der Rückmeldung eigentlich auch nur die ListIconNumber, um festzustellen, welches sortiert wurde.
Ich habe bestimmt grad einen Denkfehler! Hilfe!
Michael
WinVista Ultimate/HomePremium , PB 4.20
Re: PureLVSort > Rückmeldung nach erfolgtem Sortieren?
Undocumented feature (used by ESGrid) : PureLVSORT sends the message #PureLVSORT_eGrid_SortIsDone to the listicon when the sorting is done.mkd hat geschrieben:Ich habe bereits gesucht, aber nichts gefunden:
Wie erhalte ich EINE Rückmeldung (falls das möglich ist), wenn PureLVSort einen Sortiervorgang abgeschlossen hat?
Code: Alles auswählen
#PureLVSORT_eGrid_SortIsDone = #WM_USER + 1
SendMessage_(ListHandle, #PureLVSORT_eGrid_SortIsDone, ClickedColumn, 0)
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
You have to subclass the listicon :mkd hat geschrieben:Ich habe damit ein Verständnisproblem:
Wie frage ich diese sendmessage denn ab???
Michael
Code: Alles auswählen
;
#PureLVSORT_eGrid_SortIsDone = #WM_USER + 1
Global OldCallback.l
;
#Window_0 = 0
#ListIcon_0 = 0
;
Procedure MyCallback(WindowID, message, wParam, lParam)
Result = CallWindowProc_(OldCallback, WindowID, message, wParam, lParam)
If message = #PureLVSORT_eGrid_SortIsDone
Debug "ListIcon " + Str(GetDlgCtrlID_(WindowID)) + " was sorted (column " + Str(wParam) + ")"
EndIf
ProcedureReturn Result
EndProcedure
;
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 602, 302, "PureLVSORT V2 Test", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
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)
AddGadgetColumn(#ListIcon_0, 5, "FileSize", 120)
AddGadgetColumn(#ListIcon_0, 6, "NoSorting", 120)
AddGadgetItem(#ListIcon_0, -1, "ABCDE" + Chr(10) + "514" + Chr(10) + "0.9" + Chr(10) + "31/12/2004" + Chr(10) + "12/31/2004" + Chr(10) + "15.02 MB" + Chr(10) + "0")
AddGadgetItem(#ListIcon_0, -1, "ACDEF" + Chr(10) + "118" + Chr(10) + "1.9" + Chr(10) + "11/12/2004" + Chr(10) + "12/11/2004" + Chr(10) + "65 B" + Chr(10) + "1")
AddGadgetItem(#ListIcon_0, -1, "ZABCD" + Chr(10) + "-414" + Chr(10) + "7.0" + Chr(10) + "21/01/2003" + Chr(10) + "01/21/2003" + Chr(10) + "5.98 GB" + Chr(10) + "3")
AddGadgetItem(#ListIcon_0, -1, "DEFGH" + Chr(10) + "524" + Chr(10) + "900" + Chr(10) + "10/06/2001" + Chr(10) + "06/10/2001" + Chr(10) + "100 KB" + Chr(10) + "A")
;
OldCallback = SetWindowLong_(GadgetID(#ListIcon_0), #GWL_WNDPROC, @MyCallback())
;
EndIf
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_SetColumnType(#ListIcon_0, 5, #PureLVSORT_FileSize)
PureLVSORT_SetColumnType(#ListIcon_0, 6, #PureLVSORT_NoSorting)
EndIf
;
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).