いや、まだだから

やまだの仮想庭園 ~ いつか実体の伴う日まで

目次

Blog 利用状況

記事カテゴリ

書庫

日記カテゴリ

リンク

電卓祭り参加します(1)

アクアさんのところの電卓祭りに参加します。

一発芸電卓です。名前は似非電卓っぽく、てきとーに付けてます。

こんな感じ。

 

コンセプト(やりたかったこと)は以下の二つです。

  • 仕様はシンプルに(その分、使い方は複雑になってます)
  • 変数は使わない(画像に表示されているデータがすべて)

ClickOnce版を ここ に貼り付けておきます。

使い方。

  1. 表示されているボタンのどちらかを押します。押さなかった方はその時点で確定となります。
  2. ボタンを選択すると色が変わります。これは選択中を示しています。好きな数字もしくは演算子が出るまで連打します。
  3. もう一方のボタンを押すと確定です。押された方のボタンが選択中になります。
  4. えー、まあやってみてください。

 

下手な説明よりソースコードを読んだ方が早いですね。載せておきます。

Public Class Calcanea

    Private Sub Calcanea_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.ResultDisplay.Text = "0"
        Me.NumberButton.Text = "1"
        Me.OperationButton.Text = "+"

    End Sub

    Private Sub NumberButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumberButton.Click

        If (Me.NumberButton.BackColor = SystemColors.Control) Then
            ' 演算子確定
            Select Case Me.OperationButton.Text
                Case "C"
                    ' 初期化
                    Calcanea_Load(sender, e)
            End Select
            ' 数値選択モードへ
            Me.NumberButton.BackColor = Color.Aqua
            Me.OperationButton.BackColor = SystemColors.Control
        Else
            ' 数値選択中
            Me.NumberButton.Text = CType(Integer.Parse(Me.NumberButton.Text) + 1, String)
        End If

    End Sub

    Private Sub OperationButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OperationButton.Click

        If (Me.OperationButton.BackColor = SystemColors.Control) Then
            ' 数値確定→計算
            Select Case Me.OperationButton.Text
                Case "+"
                    Me.ResultDisplay.Text = CType(Integer.Parse(Me.ResultDisplay.Text) + Integer.Parse(Me.NumberButton.Text), String)
                Case "-"
                    Me.ResultDisplay.Text = CType(Integer.Parse(Me.ResultDisplay.Text) - Integer.Parse(Me.NumberButton.Text), String)
                Case "×"
                    Me.ResultDisplay.Text = CType(Integer.Parse(Me.ResultDisplay.Text) * Integer.Parse(Me.NumberButton.Text), String)
                Case "÷"
                    Me.ResultDisplay.Text = CType(Integer.Parse(Me.ResultDisplay.Text) \ Integer.Parse(Me.NumberButton.Text), String)
            End Select
            ' 演算子選択モードへ
            Me.OperationButton.BackColor = Color.Aqua
            Me.NumberButton.BackColor = SystemColors.Control
            Me.NumberButton.Text = "1"
        Else
            ' 演算子選択中
            Select Case Me.OperationButton.Text
                Case "+"
                    Me.OperationButton.Text = "-"
                Case "-"
                    Me.OperationButton.Text = "×"
                Case "×"
                    Me.OperationButton.Text = "÷"
                Case "÷"
                    Me.OperationButton.Text = "C"
                Case "C"
                    Me.OperationButton.Text = "+"
            End Select
        End If

    End Sub
End Class

ということで、まずはエントリとさせてください。

投稿日時 : 2007年7月8日 10:42

Feedback

No comments posted yet.
タイトル
名前
Url
コメント