Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Passing Delphi variables to Javascript function.
#1
Hello,

I have this Javascript function (charting library) that takes an array of values as a variable, like this:

data: [22,61,64,35,91,59,62,91,124,94,77,196,309,147,102,107,199,36,0,0,0,0,0,0],

My doubt is how to make it read a Delphi array as the data input, I mean, how to transfer the values to this JS array.
Sorry if this is simple to do.

Regards,
Reply
#2
How does the chart take the input on the Javascript side?

How are you emitting the necessary js/html to create the chart?
Reply
#3
Yes, the HTML and the JS are working fine, with the constants taken by the script to plot the line chart.

This is the script where the values are inserted. The line in bold is where the array of variables or values from Delphi should go. It represents points on the y axis. 

l1 = new RGraph.SVG.Line({
        id: 'cc1',
        data: [22,61,64,35,91,59,62,91,124,94,77,196,309,147,102,107,199,36,0,0,0,0,0,0],
        options: {
            key: ['Consumo (kWh)'],
            keyColorShape: 'circle',
            keyTextSize: 10,
            keyOffsetx: -220,
            marginTop: 35,
            filled: true,
            colors: ['#058DC7'],
            linewidth: 3,
            tickmarksStyle: 'filledcircle',
            filledOpacity:  0.75,
            filledColors:  ['#E6F4FA'],
            textSize: 8,
            yaxis: false,
            yaxisScaleMax: 400,
            yaxisLabelsCount: 2,
            xaxis:false,
           
            // The X axis labels for the chart
            xaxisLabels: [
                '00:00','','','','04:00','',
                '','','08:00','','','',
                '12:00','','','','16:00','',
                '','','20:00','','','23:00'
            ],

            backgroundGridBorder: false,
            backgroundGridVlines: false,
            backgroundGridHlinesCount: 2
        }
    }).draw();
Reply
#4
//DataTables
JavaScript.Text := ''
+ 'function LoadData(DataSet) {'
+ ' var table = $("#Tab_' + _TName + '").DataTable();'
+ ' table.clear();'
+ ' table.rows.add( DataSet );'
+ ' table.draw( false );'
+ '}';


ja := TJsonArray.Create; //uses JsonDataObjects
...
WebApplication.CallBackResponse.AddJavaScriptToExecuteAsCDATA('LoadData(' + ja.ToJSON(True) + ');');
Reply
#5
Great! Thank you.

Regards,
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)