import dfl; version(Have_dfl) // For DUB. { } else { pragma(lib, "dfl.lib"); } class MainForm : Form { alias CustomLineGraphRenderer = LineGraphRenderer!(string,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int); CustomLineGraphRenderer _graph; alias CustomLineGraphRenderer2 = LineGraphRenderer!(int,int,int); CustomLineGraphRenderer2 _graph2; // alias CustomTableRenderer = TableRenderer!(string,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int); // CustomTableRenderer _table; // alias CustomTableRenderer2 = TableRenderer!(int,int,int); // CustomTableRenderer2 _table2; public this() { this.text = "LineGraphRenderer example"; this.size = Size(1000, 800); string csv = "教科,山田,佐藤,井上,田中,木下,藤原,山本,大森,伊藤,高橋,鈴木,中村,小林,松井,木村,近藤\n" ~ "国語,70,80,80,75,68,65,55,48,45,38,35,25,20,10,5,1\n" ~ "算数,60,90,80,75,68,65,55,48,45,38,35,25,20,10,5,1\n" ~ "理科,80,70,80,75,68,65,55,48,45,38,35,25,20,10,5,1\n" ~ "社会,90,60,80,75,68,65,55,48,45,38,35,25,20,10,5,1\n"; _graph = new CustomLineGraphRenderer(csv, 4); _graph.showLegend = true; _graph.legendLineHeight = 18; _graph.chartMargins = ChartMargins(50, 50, 50, 50); _graph.plotPointSize = 10; _graph.verticalZeroPosition = VerticalZeroPosition.BOTTOM; _graph.plotAreaAndLegendSpanX = 50; _graph.plotAreaAndHorizontalScaleSpanY = 10; _graph.plotAreaLeftPadding = 20; _graph.plotAreaRightPadding = 20; _graph.plotAreaHeightOnDisplay = 300; _graph.hasHorizontalScale = true; _graph.horizontalScaleSpan = 100; _graph.horizontalScaleLineInnerSide = 0; _graph.horizontalScaleLineOuterSide = 5; _graph.horizontalScaleHeight = 12; _graph.hasVerticalScale = true; _graph.verticalMaxScale = 110; _graph.verticalScaleLineOuterSide = 5; _graph.verticalScaleLineInnerSide = 0; _graph.verticalScaleSpan = 20; _graph.verticalScaleWidth = 40; _graph.backColor = Color.white; _graph.plotAreaBoundsColor = Color.black; _graph.plotLineColorPalette[0] = Color.black; _graph.plotPointFormList[4..8] = PlotPointForm.CROSS; _graph.plotPointFormList[8..12] = PlotPointForm.RECTANGLE; _graph.plotPointFormList[12..16] = PlotPointForm.TRIANGLE; _graph.relocate = Point(50, 50); // Relocate origin point based on top-left margins. string csv2 = "A,B,C\n" ~ "70,80,80\n" ~ "60,90,80\n" ~ "80,70,80\n" ~ "90,60,80\n"; _graph2 = new CustomLineGraphRenderer2(csv2, 4); _graph2.chartMargins = ChartMargins(10, 10, 10, 10); _graph2.relocate = Point(600, 50); // _table = new CustomTableRenderer(csv, 4); // _table.location = Point(50, 500); // _table.hasHeader = true; // _table.showHeader = true; // _table.headerLine = true; // _table.width[] = 40; // _table2 = new CustomTableRenderer2(csv2, 4); // _table2.hasHeader = true; // _table2.showHeader = true; // _table2.headerLine = true; // _table2.width[] = 40; // _table2.location = Point(680, 200); } protected override void onPaint(PaintEventArgs e) { if (_graph) _graph.draw(e.graphics); if (_graph2) _graph2.draw(e.graphics); // if (_table) // _table.draw(e.graphics); // if (_table2) // _table2.draw(e.graphics); } } static this() { Application.enableVisualStyles(); } void main() { Application.run(new MainForm()); }