Page 1 of 1

WriteLog Functions (Threads)

Posted: Tue Aug 27, 2019 2:10 pm
by mk-soft
I keep rewriting this code.
If someone can use the code, I'll put it down here. :wink:

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())


Re: WriteLog Functions (Threads)

Posted: Fri Oct 18, 2019 6:29 am
by kinglestat
This is nice