...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

DFL: Timerのサンプルコード

Timerクラスのサンプルコードです。

Startボタンでカウントアップ開始、Stopボタンで停止します。

import dfl;
import std.conv;

version(Have_dfl) // For DUB.
{
}
else
{
    pragma(lib, "dfl.lib");
}

class MainForm : Form
{
    private Label _label;
    private Timer _timer;
    private Button _start;
    private Button _stop;
    private uint _count;

    public this()
    {
        this.text = "Timer example";
        this.size = Size(300, 200);

        _label = new Label;
        _label.location = Point(100, 0);
        _label.font = new Font("Verdana", 50f);
        _label.autoSize = true;
        _label.text = to!string(_count);
        _label.parent = this;

        _timer = new Timer;
        _timer.interval = 1000; // 1秒周期に設定
        _timer.tick ~= (Timer t, EventArgs e) {
            _label.text = to!string(_count);
            _count++;
        };

        _start = new Button;
        _start.text = "Start";
        _start.location = Point(10, 10);
        _start.click ~= (Control c, EventArgs e) {
            _timer.start();
        };
        _start.parent = this;

        _stop = new Button;
        _stop.text = "Stop";
        _stop.location = Point(10, 50);
        _stop.click ~= (Control c, EventArgs e) {
            _timer.stop();
        };
        _stop.parent = this;
    }
}

static this()
{
    Application.enableVisualStyles();
}

void main()
{
    Application.run(new MainForm());
}