Page 1 of 1

Diagrams

Posted: Tue Mar 15, 2016 6:13 am
by santa
I need to have diagrams i.e. Charts like RMcharts

I think it should be in visual designer of Purebasic and Spiderbasic also

Also examples are important.

Re: Diagrams

Posted: Tue Mar 15, 2016 9:20 am
by Peter
until there is a native ChartGadget in SpiderBasic, you can use any 3rd Party Lib (for example: Flot)

Here is a little example, how to use Flot:

Code: Select all

#myWindow = 0
#myButton = 0
#myContainer = 1

Procedure.i PageInclude(FileName.s, FileType.s="")
  If FileType="" : FileType=GetExtensionPart(FileName) : EndIf 
  Select LCase(FileType)
    Case "less"     
      !$('<link rel="stylesheet/less" type="text/css">').attr('href',v_fileName).appendTo('head');
    Case "css"     
      !$('<link rel="stylesheet" type="text/css">').attr('href',v_filename).appendTo('head');
    Case "js"     
      !$('<script type="text/javascript"></script>').attr('src',v_filename).appendTo('head');      
  EndSelect   
EndProcedure

PageInclude("http://cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/excanvas.min.js")
PageInclude("http://cdnjs.cloudflare.com/ajax/libs/flot/0.8.2/jquery.flot.min.js")

Procedure GadgetElement(Gadget, UseJquery.b = #True)
  Protected gadgetObject = GadgetID(Gadget) 
  ! if (v_gadgetobject && v_gadgetobject.div) { return v_usejquery ? $(v_gadgetobject.div) : v_gadgetobject.div; }
EndProcedure

Procedure Draw()
  Protected container = GadgetElement(#myContainer)
  ! var d1 = [[1, 300], [2, 600], [3, 550], [4, 400], [5, 300]];
  ! $.plot(v_container, [d1]);
EndProcedure

OpenWindow(#myWindow, 100, 100, 500, 300, "")
ButtonGadget(#myButton, 10, 10, 200, 30, "Flot...")
ContainerGadget(#myContainer, 10, 50, 450, 200, #PB_Container_Single)
CloseGadgetList()

BindGadgetEvent(#myButton, @Draw())

Re: Diagrams

Posted: Sat Mar 19, 2016 5:02 pm
by santa
Thanks You so much. Flot is great. Beautiful!!!
I hope to see the same for Purebasic