GetFullPath

ぱぇぽぃ2 ? Blog Archive ? Opera WMV

の最後でカレントディレクトリからでは端末で絶対パス名を取れない場合があると書いた。
待てよ? os.path が無い IronPython ではどうやるのだろう?

Path メンバ (System.IO)

System.IO.Path で普通に GetFullPath メソッドがあった。
そういえば IronPython では __file__ は使えるのだろうか?
ということで試してみる。

#-*- coding:utf-8 -*-

import sys
import System

print sys.argv[0]
print __file__
print System.IO.Path.GetFullPath(__file__)

abspath

あぁやはりカレントディレクトリではこうなるのか。
見落とししやすい所なので注意したほうがいいね、cmd.exe から起動しない!と言わない。

それと。

ShowDialog() メソッドで開いた Window で Value を参照しようとすると例外になる。
調べると ShowDialog() の戻り値自体が Boolean になっている、C# と違うじゃん。
何故?よく解らないけどコンパイルしないとこういう結果になるのかな。

それと。

バックアップを試せば解るけど Welcome クラスは Application インスタンスを作成していない。
それなのに Window が普通に動くんだが、メッセージループはどうなっているの?
試しに Show() メソッドで表示してみたら即終了、なるほどそういうことなのか。
Window は ShowDialog() メソッドを使うなら Application インスタンスから動かす必要は無いのね。
何のことか解らない人は Windows アプリは何故動くのかを勉強しておこう、→の本で。

ついでに Welcome のインスタンスを作ったらその中で sys.exit() できなかった。
その前に Close() しなきゃいけないのか、ふむふむ。

それと。

GtkEntry は Nautilus からファイルをドロップするとファイルのフルパスが流し込まれる。
Linux 版と動作を合わせたいので「ようこそ」のフルパス入力部で同じようにしたい。
つか「ファイルの参照ダイアログ」は使いたくないだけだが、多分使う人はいないと思うし。
「minipoli を使え」にしてもイイけどそれはやはりあんまりかと。

[WPF]ドラッグアンドドロップ

検索したら簡単に方法が見つかった、IronPython 言語への書き換えも普通どおり。
あぁ Windows の開発は楽チンだなぁ…日本語でアッサリ見つかるんだもの。
PyGtk になると日本語では実用的コードなんかまったく見つからないからね。

今日は結構勉強になった。
Ubuntu 上の VirtualBox で動かしている Windows 7 RC でやったほうが開発が楽しいなんて…
困ったら即 Ubuntu に戻れるからだろうけどさ、ということで今日のバックアップ。

welcomedlg

seeme_a403.zip

とりあえず「ようこそ」だけ移植完了、先はまだ長い。