2015年8月27日木曜日

Radioボタンを使ってみる

XMLの記載
RadioGroupで囲むと排他選択になる
    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignTop="@+id/radioButton"
        android:layout_alignParentStart="true">
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Xxx"
        android:id="@+id/radioButton"
        android:layout_below="@+id/textView"
        android:layout_alignParentStart="true"
        android:layout_marginTop="42dp" />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Yyy"
        android:id="@+id/radioButton2"
        android:layout_below="@+id/radioButton"
        android:layout_alignParentStart="true" />

    </RadioGroup>



java側は以下
1. ハンドラの登録
        // ラジオボタンハンドラ
        RadioButton rbuttonXxx = (RadioButton)findViewById(R.id.radioButton);
        rbuttonXxx.setOnClickListener(new RadioButtonXxxClickListener());

2. ハンドラを記載
    private class RadioButtonXxxClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v){
            // 処理の内容を書く
        }

2015年8月24日月曜日

TextView/EditTextを参照・設定する

EditBox = EditText
Label = TextView
みたいなものでしょうか...

TextViewに文字を表示する
    TextView tv = (TextView) findViewById(R.id.textView);
    tv.setText(string);

EditTextに入力されている文字を取得する
    EditText edv = (EditText) findViewById(R.id.editText);
    String string = edv.getText().toString();

ボタン押下時のイベントハンドラを書く

Androidのイベントハンドラの書き方
今回はボタン押下時のイベント

1. MainActivity.javaのonCreateにハンドラを指定するコードを書く
        Button button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new ButtonClickListener()); // 引数にリスナを書く

2. ↑のリスナのクラスを書き、onClickをoverrideする
    private class ButtonClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v){
            // ここにアクションを書いておく(例:トーストを表示する)
      Toast.makeText(MainActivity.this, "クリックしました", Toast.LENGTH_SHORT).show();
        }
    }


2015年2月3日火曜日

C#でExcel参照

ドラッグドロップするとシート1の(1,1)のセルの内容を表示してみる
あと、worksheetの名前をtextbox2の内容で更新してみる

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.Office.Interop;

using Microsoft.Office.Interop.Excel;

namespace excelTest01
{
    public partial class Form1 : Form
    {
        Microsoft.Office.Interop.Excel.Application ExcelApp;
        Workbook Workbook;
        Worksheets Worksheets;
        Worksheet Worksheet;
        Range Range;
       
        public Form1()
        {
            InitializeComponent();

            ExcelApp = new Microsoft.Office.Interop.Excel.Application();
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// ドロップ時イベント
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            string[] filelist = (string[])e.Data.GetData(DataFormats.FileDrop);
            textBox1.Text =  Path.GetFileName(filelist[0]);
            string file = Path.GetFileName(filelist[0]);

            // excelを開く
            Workbook = ExcelApp.Workbooks.Open(filelist[0]);
            // Worksheet = Workbook.Sheets[1];    // ワークシートのインデックスは1から
            Worksheet = Workbook.Sheets[2];    // ワークシートのインデックスは1から
            Range = Worksheet.Cells[1, 1];
            textBox1.Text = Range.Text;
            Worksheet.Name = textBox2.Text;     // ワークシートのnameプロパティでワークシート名を変更出来るようだ

            // excelを閉じる
            ExcelApp.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
        }

        /// <summary>
        /// ドラッグエンター時イベント
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
                e.Effect = DragDropEffects.Copy;
            else
                e.Effect = DragDropEffects.None;
        }
    }
}

2014年8月12日火曜日

Windows8の他のPCのドライブを参照

Windows8.1を使っていますが、エクスプローラで"ネットワーク"を見ていると他のWindows8.1のマシンが見えます
Windows7以前はフォルダ共有をしないとダメだった気がしますが、Windows8(.1?)からはMSアカウントにしていればそのままアクセス出来た気がしましたが...

久々にアクセスしようと思ったら"パスワードが違っています"と言われます(あれ??)
よく見ると、ドメインにローカルPCの名前がついたようなログイン名になっています
ex) computer_name01\hogehoge
みたいな(compter_name01は現在自分がログインしているコンピュータ名)

これではダメですね...(エラーの"パスワードが違っています"だと勘違いしますが...)

という事で適当に
computer_name02\hogehoge@live.jp
としたら入れました(!?)

便利な機能ですが、"パスワードが違う"と言われると勘違いしますよね...


2014年6月21日土曜日

Canvasその1 fillRectで矩形を描画

HTML5での図形描画はcanvasというものを使います

最初のひな形を基に、四角を描画するコードを書いてみます
間違っていると描画されませんので、適当にデバッグログを入れてfirefoxのコンソールで確認しながら進めます

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Canvas01 </title>

</head>

<body onload="draw('canvas');">
<H1> Canvasによる矩形の描画 </H1>
<canvas id="canvas" width="400" height="300" />

<script>
    function draw(id){
        console.log("ondraw : " + id);

        var canvas = document.getElementById(id);
        if( canvas == null ){
            conslole.log("ぬるぽ");
            return;
        }

        var context = canvas.getContext('2d');
        context.fillStyle = "#FF0000";        // 赤100%
        context.fillRect(0, 0, 400, 300);        // 描画
    }
</script>
</body>
</html>

canvasを使用する手順としては、まずHTML側では
1. body内にcanvasタグをつける
  idとサイズを記載する
2. scriptタグ内にcanvasに描画するjavascriptの関数を追加
  今回は"draw"という関数を用意しました
3. 関数の呼び出し用のイベントを追加
  今回はbodyがloadされたら関数drawを描画させる為に
      <body onload="draw('canvas');">
     としています

javascript側の処理は
1. document.getElementByIdで引数(今回はid:canvas)から"要素"を取得
  ( DOMオブジェクトと記載しているページもありますね)
        var canvas = document.getElementById(id);
    の部分です
2. このオブジェクト(要素・DOMオブジェクト)がnullだったら処理をしないのがお作法なので
  nullチェックを行います 
3. DOMオブジェクトからグラフィックコンテキストを取得
  ここの引数が2dとなっていますが、現在は2dしか無い模様です
  このcontextに対して描画の操作を行っていきます
4. 塗りつぶし処理
  グラフィックコンテキストに対して塗りつぶしメソッドを実行します
  今回はfillで塗りつぶしていますが、輪郭を描くstrokeというものも存在するようです
  context.fillStyle = "#FF0000";        // 赤100%
     RGB値でfillStyleプロパティ (色)を設定
      "red"というように定義済のものを指定可能
      rgbaの記載もできる模様
  context.fillRect(0, 0, 400, 300);
     描画。引数はrectのサイズ

とりあえずこんな感じで図形が描画できました


     




2014年6月9日月曜日

FireFoxでJavaScriptコンソールを表示する

JavaScriptのデバッグ方法はどうするのかと思っていたのですが、ログの表示をする方法が使えそうです。

FireFoxを使っているので、JavaScript Consoleを使う事によりログ出力を行います

1. FireFoxの右上の"三"をクリックし、"開発ツール" -> "Webコンソール" を選択
   (ブラウザ画面下にコンソール画面が表示される)
2. htmlのscriptタグ部分に以下の記述をする
    <script>
       console.log("hoge");
    <script>

サンプルですが、こんな感じのテキストファイル(hoge.html)をエディタで作って、
- FireFoxにドラッグ&ドロップ
- ダブルクリック (htmlに関連付けしてある場合)
すると、consoleに文字が表示されます

---
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title> ログ出力テスト </title>
</head>

<body>
    <div id="section"></div>
    <script>
        console.log("Hello World");
    </script>
</body>
</html>