If someone can use the code, I'll put it down here.
Code: Select all
; Comment : Write Log Base
; Author : mk-soft
; Create : 27.08.2019
; Version : v1.01
; Enumeration CustemEvents #PB_Event_FirstCustomValue
; #MyEventWriteLog
; EndEnumeration
; Declare MainWriteLog(Text.s)
; Declare Writelog(Text.s)
#WriteLogGadget = #Main_Listview_Status
#WriteLogMaxItems = 10000
Global flagWriteLogNoScroll = #False
Procedure MainWriteLog(Text.s) ; Call from Main Scope
Protected cnt
cnt = CountGadgetItems(#WriteLogGadget)
If cnt >= #WriteLogMaxItems
RemoveGadgetItem(#WriteLogGadget, 0)
cnt -1
EndIf
AddGadgetItem(#WriteLogGadget, -1, Text)
If Not flagWriteLogNoScroll
SetGadgetState(#WriteLogGadget, cnt)
SetGadgetState(#WriteLogGadget, -1)
EndIf
EndProcedure
Procedure Writelog(Text.s) ; Call from Threads
Protected *text.string
*text = AllocateStructure(string)
If *text
*text\s = Text
PostEvent(#MyEventWriteLog, 0, 0, 0, *text)
EndIf
EndProcedure
Procedure DoEventWriteLog() ; Call from BindEvent
Protected *text.string
*text = EventData()
If *text
MainWriteLog(*text\s)
FreeStructure(*text)
EndIf
EndProcedure
BindEvent(#MyEventWriteLog, @DoEventWriteLog())