Seite 2 von 4

Re: Module für PureBasic 5.2x LTS

Verfasst: 02.03.2014 16:27
von ts-soft
Probs.pbi (ts-soft / Fred)
Windows / Linux / MacOS

Code: Alles auswählen

  Declare.i GetProp(Gadget, Name.s)             ; Get a property from the given #Gadget. Returns 0 if the property does not exist
  Declare.s GetPropStr(Gadget, Name.s)          ; Get a propertystring from the given #Gadget. Returns "" if the property does not exist
  Declare   SetProp(Gadget, Name.s, Value)      ; Set a property on the given #Gadget
  Declare   SetPropStr(Gadget, Name.s, Value.s) ; Set a propertystring on the given #Gadget
  Declare   RemoveProp(Gadget, Name.s)          ; Remove a property from the given #Gadget (if it exists)
  Declare   RemoveAllProps(Gadget)              ; Remove all properties (and the map) from a given #Gadget.

Re: Module für PureBasic 5.2x LTS

Verfasst: 02.03.2014 16:31
von ts-soft
Unrar 5.pbi (ts-soft)
Windows Only

Code: Alles auswählen

Declare RARUnpackArchiv(FileName.s, DestPath.s = "", Password.s = "", *Callback = 0)

Re: Module für PureBasic 5.2x LTS

Verfasst: 02.03.2014 16:34
von ts-soft
FileMap.pbi ts-soft)
Windows Only

Code: Alles auswählen

DeclareModule FileMap
  Declare Create(Name.s, Size.i)
  Declare Open(Name.s)
  Declare Close(*Mem)
EndDeclareModule

Re: Module für PureBasic 5.2x LTS

Verfasst: 02.03.2014 16:38
von ts-soft
OwnGadget.pbi (ts-soft/edel)
Windows / Linux / MacOS

Code: Alles auswählen

  Declare RegisterGadget(ID.i, hWnd.i, *vt.GadgetVT = 0)
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Windows
      Declare CreateGadget(ID.i, ClassName.s, Text.s, Style.l, x.i, y.i, w.i, h.i, ExStyle.l = 0, *vt.GadgetVT = 0)
  CompilerEndSelect

Re: Module für PureBasic 5.2x LTS

Verfasst: 02.03.2014 16:41
von ts-soft
PBDATA.pbi (ts-soft)
Windows Only

Code: Alles auswählen

DeclareModule PBDATA
  Interface IPBDATA
    Free()                          ; close the resfile and releases the object.
    AddMem.i(ResID, *mem, size = 0) ; add the memory with resid to the resourcefile.
    AddFile.i(ResID, FileName.s)    ; load the file in to memory and add the memory with resid to the resourcefile.
  EndInterface
 
  Declare New(ResFile.s)            ; create object and open or create resfile. result is object.
  Declare Get(ResID, hModule = 0)   ; load the resource with resid in to memory. result is memoryaddress or 0 on error.
EndDeclareModule

Re: Module für PureBasic 5.2x LTS

Verfasst: 02.03.2014 16:44
von ts-soft
TaskBarProgress.pbi (ts-soft)
Windows Only

Code: Alles auswählen

DeclareModule TaskBarProgress
  #TBPF_NOPROGRESS    = $0
  #TBPF_INDETERMINATE = $1
  #TBPF_NORMAL        = $2
  #TBPF_ERROR         = $4
  #TBPF_PAUSED        = $8

  Interface TaskBarProgress
    GetState.i()
    GetValue.i()
    SetState(state.i)
    SetValue(value.i)
    Destroy()
  EndInterface
 
  Declare TBP_New(hWnd.i, min.q = 0, max.q = 100)
EndDeclareModule

Re: Module für PureBasic 5.2x LTS

Verfasst: 05.03.2014 12:28
von Thorsten1867
CopyFilesEx.pbi (ts-soft)
Windows / Linux / MacOS

Dateien kopieren mit Fortschrittsanzeige
Der Code dient dem Kopieren von Dateien (nicht Verzeichnissen) mit Fortschritt!
Wer Verzeichnisse Kopieren möchte, sollte die Dateien der Verzeichnisse nacheinander
kopieren. Alles andere macht auch nicht so viel Sinn, da der Zugriff durch mehrere
Threads auf dieselbe Festplatte eher Performanceeinbussen als Gewinn bringt!

Re: Module für PureBasic 5.2x LTS

Verfasst: 07.03.2014 17:10
von NicTheQuick
CMinPackWrapper.pbi (NicTheQuick)
Linux Only

Automatisches Fitting von beliebigen Funktionen.
Die Funktionen helfen aus n Datenpunkten (x,y) eine Funktion mit m <= n Parametern anzugleichen. Die Library, die dafür genutzt wird, ist MINPACK.

Code: Alles auswählen

DeclareModule CMinPack
   UseModule CMinPackType

   PrototypeC.l cminpack_func_nn(*p, n.l, *x.RealArray, *fvec.RealArray, iflag.l)
   PrototypeC.l cminpack_funcder_nn(*p, n.l, *x.RealArray, *fvec.RealArray, *fjac.RealArray, ldfjac.l, iflag.l)
   PrototypeC.l cminpack_func_mn(*p, m.l, n.l, *x.RealArray, *fvec.RealArray, iflag.l)
   PrototypeC.l cminpack_funcder_mn(*p, m.l, n.l, *x.RealArray, *fvec.RealArray, *fjac.RealArray, ldfjac.l, iflag.l)
   PrototypeC.l cminpack_funcderstr_mn(*p, m.l, n.l, *x.RealArray, *fvec.RealArray, *fjrow.RealArray, iflag.l)
   Declare.l func(hybrd1)(*fcn_nn.cminpack_func_nn, *p, n.l, *x.RealArray, *fvec.RealArray, tol.r, *wa.RealArray, lwa.l)
   Declare.l func(hybrd)(*fcn_nn.cminpack_func_nn, *p, n.l, *x.RealArray, *fvec.RealArray, xtol.r, maxfev.l, ml.l, mu.l,
              epsfcn.r, *diag.RealArray, mode.l, factor.r, nprint.l, *nfev.Long, *fjac.RealArray,
              ldfjac.l, *r.RealArray, lr.l, *qtf.Real, *wa1.RealArray, *wa2.RealArray, *wa3.RealArray, *wa4.RealArray)
   Declare.l func(hybrj1)(*fcnder_nn.cminpack_funcder_nn, *p, n.l, *x.RealArray, *fvec.RealArray, *fjac.RealArray, ldfjac.l,
            tol.l, *wa.RealArray, lwa.l)
   Declare.l func(hybrj)(*fcnder_nn.cminpack_funcder_nn, *p, n.l, *x.RealArray, *fvec.RealArray, *fjac.RealArray, ldfjac.l,
            xtol.r, maxfev.l, *diag.RealArray, mode.l, factor.r, nprint.l, *nfev.Long, *njev.Long,
            *r.RealArray, lr.l, *qtf.RealArray, *wa1.RealArray, *wa2.RealArray, *wa3.RealArray, *wa4.RealArray)
   Declare.l func(lmdif1)(*fcn_mn.cminpack_func_mn, *p, m.l, n.l, *x.RealArray, *fvec.RealArray, tol.r,
            *iwa.Long, *wa.RealArray, lwa.l)
   Declare.l func(lmdif)(*fcn_mn.cminpack_func_mn, *p, m.l, n.l, *x.RealArray, *fvec.RealArray, ftol.r,
            xtol.r, gtol.r, maxfev.l, epsfcn.r, *diag.RealArray, mode.l, factor.r,
            nprint.l, *nfev.Long, *fjac.RealArray, ldfjac.l, *ipvt.Long, *qtf.RealArray,
            *wa1.RealArray, *wa2.RealArray, *wa3.RealArray, *wa4.RealArray)
   Declare.l func(lmder1)(*fcnder_mn.cminpack_funcder_mn, *p, m.l, n.l, *x.RealArray, *fvec.RealArray, *fjac.RealArray,
            ldfjac.l, tol.r, *ipvt.Long, *wa.RealArray, lwa.l)
   Declare.l func(lmder)(*fcnder_mn.cminpack_funcder_mn, *p, m.l, n.l, *x.RealArray, *fvec.RealArray, *fjac.RealArray,
            ldfjac.l, ftol.r, xtol.r, gtol.r, macfev.l, *diag.RealArray, mode.l, factor.r,
            nprint.l, *nfev.Long, *njev.Long, *ipvt.Long, *qtf.RealArray, *wa1.RealArray,
            *wa2.RealArray, *wa3.RealArray, *wa4.RealArray)
   Declare.l func(lmstr1)(*fcnderstr_mn.cminpack_funcderstr_mn, *p, m.l, n.l, *x.RealArray,*fvec.RealArray, *fjac.RealArray,
            ldfjac.l, tol.r, *ipvt.Long, *wa.RealArray, lwa.l)
   Declare.l func(lmstr)(*fcnderstr_mn.cminpack_funcderstr_mn, *p, m.l, n.l, *x.RealArray, *fvec.RealArray, *fjac.RealArray,
            ldfjac.l, ftol.r, xtol.r, gtol.r, maxfev.l, *diag.RealArray, mode.l, factor.r,
            nprint.l, *nfev.Long, *njev.Long, *ipvt.Long, *qtf.RealArray, *wa1.RealArray,
            *wa2.RealArray, *wa3.RealArray, *wa4.RealArray)
   Declare func(chkder)(m.l, n.l, *x.RealArray, *fvec.RealArray, ldfjac.l, *xp.RealArray, *fvecp.RealArray,
            mode.l, *err.RealArray)
   Declare.r func(dpmpar)(i.l)
   Declare.r func(enorm)(n.l, *x.RealArray)
   Declare.l func(fdjac2)(*fcn_mn.cminpack_func_mn, *p, m.l, n.l, *x.RealArray, *fvec.RealArray, *fjac.RealArray,
            ldfjac.l, epsfcn.r, *wa.RealArray)
   Declare.l func(fdjac1)(*fcn_mn.cminpack_func_nn, *p, n.l, *x.RealArray, *fvec.RealArray, *fjac.RealArray,
            ldfjac.l, ml.l, mu.l, epsfcn.r, *wa1.RealArray, *wa2.RealArray)
   Declare func(covar)(n.l, *r.RealArray, ldr.l, *ipvt.RealArray, tol.r, *wa.RealArray)
   Declare.l func(covar1)(m.l, n.l, fsumq.r, *r.RealArray, ldr.l, *ipvt.RealArray, tol.r, *wa.RealArray)
EndDeclareModule

DeclareModule CMinPackWrapper
   UseModule CMinPackType
   
   Prototype.r fittingFunction(x.r, *coeff.RealArray)
   
   Structure ValuePair
      x.r
      y.r
   EndStructure
   
   Declare.i fit_lmdif(*fittingFunction.fittingFunction, Array observedValues.ValuePair(1), Array coeffs.r(1), tolerance.r, *quit.Integer = 0)
EndDeclareModule

Re: Module für PureBasic 5.2x LTS

Verfasst: 08.03.2014 15:52
von ts-soft
CopyDirEx.pbi (ts-soft)
Windows / Linux / MacOS

Die Funktion dieses Moduls ähnelt dem CopyDirectory() von PB (die ersten 3 Parameter sind gleich),
aber bietet die Möglichkeit einen Fortschritt anzuzeigen, sowie den Abbruch.
Das Kopieren geschieht Rekursiv (hierfür hab ich mir eine Funktion von STARGÅTE ausgeliehen und für meine
Bedürfnisse überarbeitet, danke). Dateiattribute werden autom. wiederhergestellt.

Code: Alles auswählen

DeclareModule CopyDirEx
  
  EnableExplicit

  Prototype.i CopyDirExCB(File.s, Dir.s, Sum.i, Procent.i)
  
  Declare CopyDirectoryEx(SourceDirectory.s,
                          DestinationDirectory.s,
                          Pattern.s = "",
                          BufferSize.l = 4096,
                          CustomEvent.l = #PB_Event_FirstCustomValue, ; This event is fired after Copying finished or canceld (SignalStop).
                          Callback.i = 0)                             ; See Prototype CopyDirExCB.
  Declare SignalStop() ; send a signal to stop copying after actual file!
  
EndDeclareModule

Re: Module für PureBasic 5.2x LTS

Verfasst: 12.03.2014 10:17
von RSBasic
Monitor.pbi (NicTheQuick)

Monitor mit ConditionVariable als Erweiterung für Mutex.
Allgemeine Informationen bezüglich Monitor: http://de.wikipedia.org/wiki/Monitor_%28Informatik%29

Code: Alles auswählen

DeclareModule Monitor
   EnableExplicit
   
   CompilerIf Not #PB_Compiler_Thread
      CompilerError "Please activate the thread safe option!"
   CompilerEndIf
   
   Interface ConditionVariable
      free()
      wait()
      signal()
      broadcast.i()
   EndInterface
   
   Interface Mutex
      free()
      acquire()
      release()
      newConditionVariable.i()
   EndInterface
   
   Declare.i newMutex()
EndDeclareModule