Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

DFL Mini-Calc

Part of DflCategory

Description

Demonstrates very simple calculator with two buttons and three input fields. Equivalent to Win32 api MiniCalcExample example.

Example

// To compile:
// dmd DflMiniCalc.d dfl.lib -L/exet:nt/su:windows:4.0

private import dfl.all;

private import std.string;

class MiniCalcForm: Form
{
  this()
  {
    text = "DflMiniCalc";
    CreateControls();       

    acceptButton = plusButton;
  }
    
  private void CreateControls()
  {
    size = Size(120, 150);  // Overall form size

    plusButton = new Button;
    plusButton.parent = this;
    plusButton.text = "Plus";
    plusButton.left = 10;
    plusButton.size = Size(50, 25);
    plusButton.click ~= &PlusClick;

    minusButton = new Button;
    minusButton.parent = this;
    minusButton.text = "Minus";
    minusButton.left = 60;
    minusButton.size = Size(50, 25);
    minusButton.click ~= &MinusClick;

    firstNumberText = new TextBox;
    firstNumberText.parent = this;
    firstNumberText.text = "170";
    firstNumberText.location = Point(10, 30);
    firstNumberText.size = Size(100, 20);

    secondNumberText = new TextBox;
    secondNumberText.parent = this;
    secondNumberText.text = "252";
    secondNumberText.location = Point(10, 55);
    secondNumberText.size = Size(100, 20);

    resultNumberText = new TextBox;
    resultNumberText.parent = this;
    resultNumberText.text = "";
    resultNumberText.location = Point(10, 80);
    resultNumberText.size = Size(100, 20);
  }
    
  private void PlusClick(Object sender, EventArgs ea)
  {
    GetNumbers();
    result = num1 + num2;
    resultNumberText.text = std.string.toString(result);
  }

  private void MinusClick(Object sender, EventArgs ea)
  {
    GetNumbers();
    result = num1 - num2;
    resultNumberText.text = std.string.toString(result);
  }

  private void GetNumbers()
  {
    char[] firstValue = firstNumberText.text;
    char[] secondValue = secondNumberText.text;
    num1 = atoi(firstValue);
    num2 = atoi(secondValue);
  }

  private TextBox firstNumberText;
  private TextBox secondNumberText;
  private TextBox resultNumberText;
  private Button  plusButton;
  private Button  minusButton;
  private long    num1;
  private long    num2;
  private long    result;
}


int main()
{
  Application.run(new MiniCalcForm);    
  return 0;
}

Source

Link http://www.dsource.org/tutorials/index.php?show_example=135
Posted by Lynn
Date/Time Wed Dec 22, 2004 8:41 am