英文メールの言い回し

間違った宛先のメールを受け取ったとき I received the following e-mail from you last night, and believe that you made an error in the address. I am afraid your e-mail mistakenly got sent to the wrong address. My name is not ... ミーティング…

schemeに慣れる

局所変数x、yを定義する。そのためのlet。 定義した局所変数の値を変更する。そのためのset!。使用例は以下の通り。 (define (example) (let ((x 0) (y 0)) ... (set! x (+ x amount)) (set! y (+ y amount)) ...

ListViewの編集

ListViewにアイテムを追加したり、選択したアイテム行を削除する方法。 簡単なサンプルコードを下に示す。ここでは、Addボタンを押すと決まった文字列を追加する。アイテム行を選択してRemoveボタンを押すと行を削除する。行が選択されていなければ何もしな…

開かれるウィンドウの初期位置を定義する

何も指定しないとデフォルトロケーションということで、左上寄りに表示される。 画面中央に表示する場合の設定 class MainForm(Form): def __init__(self): self.InitializeComponent() def InitializeComponent(self): self.SuspendLayout() # # MainForm #…

GUIから外部ソフトを実行したい

以前に、GUIからPDFファイルを開きたい - 理想のユーザ・インターフェイスを求めてを検討したが、コマンドラインから実行できる任意のプログラムを、同じようにGUIボタンを押したときに実行できるようにする。 やりかたはPDFファイルを開いたときとほぼ同じ…

WebBrowserフォームのサンプル

画面上にWebBrowserのFormを配置する。そのサンプルを下に示す。 url_fileに、URLを指定する。サンプルのようにローカルに置いたHTMLファイルのファイルパスを指定しても問題なく表示される。 import System.Drawing import System.Windows.Forms from Syste…

exeファイルもしくはdllファイル作成

IronPythonのコードを、Command Line Python Compiler (pyc.py)でコンパイルして実行形式ファイルを作成する。 実行例。 > ipy.exe pyc.py /main:main.py /target:winexe Input Files: Output: main Target: WindowApplication Platform: ILOnly Machine: I3…

円周率の定義

(define pi (* 2 (asin 1)))

今日のscheme

(string-length c) : 文字列cの長さを返す > (define cc "test") cc > (string-length cc) 4 (symbol->string a) : シンボルを文字列に変換する

ファイルの削除

> (remove "*.jpg")

二重のIF文

> (if (string=? aa "AA") (if (string=? bb "BB") (display cc) ) ) >

2つのdisplayを同時に実行する

if文で使える。 > (define aa "Hello") > (define bb " World!") > > (define (test) (display aa)(display bb) ) test > (test) Hello World! >

今日のscheme

let : 局所変数を定義 set! : 代入 map : リストに対して手続きを作用させた結果を返す cdr : 対の右側を取り出す memq : 記号がリストに含まれていないなら#f car : 対の左側を取り出す

今日のscheme

ファイル存在確認 (file-exist? "AAA") ---"AAA"というファイルが存在するか? #tか#fを返す。 文字列が含まれているか (substring? "aa" some-string) --- 文字列some-stringの中に"aa"が含まれているか? #tか#fを返す。 否定 (not #t) --- #fを返す。 (no…

今日のscheme

schemeに慣れなければ、いつまでも読めない。 define : 変数の定義。変数に値を関連付ける 例) > (define file-number 10) file-number > (display file-number) 10 string-append : 文字列の結合 例) > (define hoge1 "123") hoge1 > (define hoge2 "456"…

マルチスレッド実行のテスト

IronPythonでのマルチスレッド実行方法をテストする。GUI画面を起動するときのイベントループを別スレッドで実行するには、どうすればよいか?テストコードを以下のように書く。2つの画面を立ち上げただけだが...。Single Threaded Apartment (STA) threadと…

IronPythonの参考文献

最近読んでいる本。他にめぼしい本がない。IronPythonの世界 (Windows Script Programming)荒井 省三 ソフトバンク クリエイティブ 2007-03-28売り上げランキング : 176564Amazonで詳しく見る by G-ToolsIronPython in ActionMichael J. Foord Christian Mui…

ESCキーを押したときの挙動をボタンを押したときの挙動と結びつける

SharpDevelopのTips。画面上のCancelボタンを押すと画面が閉じるようにする。この処理をCancelボタンを押さずに、ESCキーを押したときにも実行されるようにする。まず、ボタン付きの画面を作成する。設置したボタンのDesign (Name)をbuttonCancelとした。こ…

メニュー項目にショートカットキーを設定する

IronPythonで作成するGUIについて、メニュー項目にショートカットキーを設定したい。 SharpDevelopのデザイン画面で、まずメニューを設置する。ここでは、ウィンドウを閉じるExit項目だけの簡単なものを作成した。メニュー項目Exitのプロパティを見ると、「M…

ウィンドウのサイズを変えたときのボタンの振る舞い

ウィンドウのサイズをマウスでいじるときに、配置されたコントロールの動きというか振る舞いを規定したい。それらはボタンのプロパティの中の「Layout」の「Anchor」で調整することができる。今の場合だと、このボタン(Button1)はウィンドウの左側と上側か…

コントロールにツールチップを表示する

マウスポインタを重ねたときに、ツールチップが表示されるようにする。 フォームデザイナを使用して設定を行う。まずボタンを二つ配置する。 これらボタンにマウスポインタを持っていくと、ツールチップを表示するようにしたい。Windowsフォームのツールボッ…

ツールボックスのWindowsフォームにあるTimerの設定方法

デザイナ画面でGUIの作成を行う場合に、WindowsフォームデザイナーのツールボックスにあるTimerをどのように設定したらよいか不明だったので、調べたことをまとめておく。 SharpDevelopを使った場合の具体的な操作を記述するが、同じ操作はVisual Studioにも…

import osに失敗する(SharpDevelopで実行すると)

SharpDevelopでIronPythonのコードを書くとき、なぜかosモジュールのインポートに失敗する。原因は不明。下のサンプルコードは、ボタンを押してファイルを選択する。選択されたファイルのファイル名だけがボタン上に表示される。os.path.basename()を使って…

メニュー項目にアイコンを表示する

メニュー項目にアイコンを表示するサンプルコード。 SharpDevelopのGUIにおいて、アイコンファイルを指定して自動的にコードを生成するとRunしてもエラーとなって表示できない。この現象はアイコンに限らず他の画像ファイルを表示するときにも同じことが起こ…

GUIからPDFファイルを開きたい

IronPythonで作ったGUI上のボタンを押すと、PDFファイルを開くようにしたい。PDFファイルを開くためにはどうすればいいのかというところがポイントになるが、Process.Startを使うと、指定した文書を関連づけられた外部プログラムで起動できるようなので、こ…

プログレスバーをマーキースタイルで実行する

処理にかかる時間が不明な場合、プログレスバーをマーキー(Marquee)スタイルで実行するのが自然だ。その処理をどう書くか?マーキースタイルのプログレスバーは表示を開始した時点から動き始める。止める方法が分からなかったので、処理を始めるときに表示し…

ウィンドウにアイコンを表示する

SharpDevelopで作成するWindows Form Applicationのウィンドウにアイコンを付加する。下のコードのように、一番最後の行を加えればよい。アイコンファイル(拡張子ico)は事前に用意しておく。 import System.Drawing import System.Windows.Forms from Syst…

画面上(のPictureBox)をクリックしたときの処理

ウィンドウ画面上をマウスでクリックしたときに、表示されている画像が90度回転されるような処理を実現する。 まず、PictureBoxを配置して画面全体を覆うようにする。ここに画像ファイルを貼り付ける。画像ファイルは外部ファイルとしてパスで指定する。Pict…

タブにファイルを表示する

指定したディレクトリにおいて拡張子がicoである画像ファイルを、タブを表すタブコントロールに表示するプログラム。 import System.Drawing import System.Windows.Forms import System.IO from System.Drawing import * from System.Windows.Forms import …

ツリービューの構成要素を変更する

ツリービューにノードを追加したり削除したり、子ノードを追加したり削除したりするサンプルを検討する。 参考にするのは、IronPythonのサンプルの中の、FMsynthというプログラムになる。基になるツリービューは、SharpDevelopのデザイン画面で作成した。ボ…