2009-01-01から1年間の記事一覧
.NET Compact Framework 2.0では関数ポインタのマーシャリングがサポートされましたが、引数や戻り値の型に制限があります。boolは変換できないためNotSupportedExceptionになります。boolの代わりにintを使えば問題ありません。このことを知らずにP/Invoke…
IMEの状態が検出できるようになったので、内部でTextBoxを利用して独自コントロールで文字入力してみました。 ⇒ 動作確認とソースキャレットは点滅しません。カーソルキーやクリックで移動できません。編集は[Backspace]だけです。たまに変換中に文字を取り…
Silverlight 3でIMEの制御は、TextBoxでの有効・無効の設定しかできません。TextBox以外からIMEを利用する方法はありません。キーストロークから文字を取得(例: [Shift]+[1]→!)する方法もありません。このような状況でエディタを作ろうとすると、全部自前…
デバッガもどきを作ろうとして挫折しました。後で使い回すかもしれないので、ボタンのXAMLを貼っておきます。画像ファイルを用意しなくてもアイコンが作れるのが新鮮でした。
【注】2010年12月10日以降、仕様変更により利用不可となりました。暗号化のため対応は不可能です。id:n7shi:20090907のコメントでmmmtokさんからページをめくるときにフリーズするというご指摘がありました。修正したものを公開します。id:n7shi:20090106の…
id:n7shi:20090201のコメントでmmmtokさんにメモリを節約する方法を教えていただきました。 次のようにBitmapのコンストラクタにformatを指定すると、使用メモリが減るようです。 new Bitmap(w, h, PixelFormat.Format16bppRgb565); 修正したものを公開しま…
id:n7shi:20090731:1248967824でMonitorを取り上げましたが、AutoResetEventを使った方が簡単だということが分かりました。詳細はid:n7shi:20090731:1248967824を修正したのでそちらを参照してください。AutoResetEventについてはParallel で最適化してみる…
オンラインでFlashが開発できるwonderflのコード一覧表を作成しました。集計できたのは約18,000件です(公式発表では2009年6月時点で27,717件)。データが巨大なためExcelファイルを圧縮して置いておきます。 wonderfl.zip 本家にはタイトルをブラウズするよ…
id:n7shi:20090714でXmlXapResolverを取り上げましたが、Application.GetResourceStream()を使った方が簡単だということが分かりました。詳細はid:n7shi:20090714を修正したのでそちらを参照してください。
id:fslashtさんのMIZU GAMEをCompact Frameworkに移植しました。id:n7shi:20090106の方法により無料のVC# Expressで開発しています。PCとWindows Mobileの両方で動きます。ダウンロードは以下です。 MizuGame.CAB (Windows Mobile用CABインストーラ) MizuGam…
id:fslashtさんのMIZU GAMEをSilverlightに移植しました。動作確認とソースのダウンロードは以下です。 MIZU GAME for Silverlight オリジナルを初めて起動したとき、流れるような水の表現に圧倒されました。それを再現するため、SDL.NETを使用している部分…
スーパーマリョーワールド(仮)のWindows Mobile用CABインストーラを作成しました。分散するとわかりにくくなるため、以前のエントリにまとめて置きます。 id:n7shi:20090801 操作のときにIMEが邪魔になるため、起動時にIMEをオフにするようにしました。参考…
SilverlightではSystem.Windows.Documents.FontSourceでフォントを読み込んで描画に使用できます。GDI+のPrivateFontCollectionに相当しますが、Familiesに相当するものがないため、あらかじめフォント名を調べておく必要があります。mplus-2p-black.ttfなら…
MediaElementをXAMLに記述しないでコードから呼ぼうとしてハマりました。検索しても情報が錯綜しています。 id:beta_magnus:20090625:1245906963 : SilverlightのMediaElementはビジュアルツリーに組み込まないと音声再生などができないらしい、という噂を聞…
id:n7shi:20090801のスーパーマリョーワールド(仮)をSilverlightに移植しました。実際にプレイできます。動作確認とソースのダウンロードは以下です。 Super Maryo World for Silverlight 移植にはid:n7shi:20090730で開発したWindows Formsエミュレーション…
牧本さんのスーパーマリョーワールド(仮)の.NET Framework版をCompact Framework用に手直ししました。id:n7shi:20090106の方法により無料のVC# Expressで開発しています。PCとWindows Mobileの両方で動きます。ダウンロードは以下です。 SuperMaryoWorld.CAB…
SilverlightではGIFが使えません。PNGに変換しようとしたのですが、数が多くてアニメーションGIFが混ざっていたため、GDI+(System.Drawing)で情報を取得して変換しました。変換部分のコードは以下の通りです。
SilverlightのWebRequestには非同期のBeginWebResponseしかありませんが、以下のような拡張メソッドでGetResponse相当の同期呼び出しができます。メインスレッドからは呼べないので注意が必要です(詳細は後述)。
id:m107さんのh01とy01をSilverlightに移植しました。ゲームとしては遊べませんが、実験の一環です。動作確認とソースのダウンロードは以下です。 キャラクタが一人 キャラクタが四人 拡大・縮小・スクロール キャラクタの移動 効果音 フリック動作 BGM アイ…
UIElementをラスターデータで出力するのにはWriteableBitmapが使えますが、ベクターデータで出力するのにXAMLを使ってみました。サンプルではVisual TreeをTreeViewで表示しているため、コントロールの内部構造と比較できます。 ⇒ 動作確認とソースSilverlig…
WriteableBitmapのイメージは簡単にBMPファイルとして保存できます。 var bmp = new WriteableBitmap(LayoutRoot, null); var sfd = new SaveFileDialog { Filter = "32 ビット ビットマップ (*.bmp)|*.bmp|すべてのファイル (*.*)|*.*", DefaultExt = ".bmp…
自作言語AndromedaをSilverlightに移植しました。Win32バイナリを出力するネイティブコンパイラです。動作確認とソースのダウンロードは以下です。 Andromeda for Silverlight Andromeda クラスマップ ツリーのSamplesからビルドしたいサンプルを選んで[Buil…
id:takuto_hさんのCyanとYellowの移植をSilverlight 3に対応しました。動作確認とソースのダウンロードは以下です。 Cyan for Silverlight Cyan クラスマップ Yellow for Silverlight Yellow クラスマップ 変更点は以下の通りです。 ドキュメントリストをLis…
Silverlight 3でTreeViewがサポートされました。デフォルトでは参照されないため、System.Windows.Controls.dllを参照に追加する必要があります。ItemsにはTreeViewItem以外も入れられますが、子ノードをぶら下げられるのはTreeViewItemだけです。以下は親ノ…
Silverlight 3でMouseWheelがサポートされたためListBoxをスクロールさせようとしましたが、Silverlight 2とは仕様が変わっていることに気付きました。Silverlight 2のListBoxのScrollViewerはVerticalOffsetがドット単位でしたが、Silverlight 3では行単位…
閉鎖やサーバー障害などで見たいページが消えたときにInternet Archiveや検索エンジンのキャッシュを調べることがあります。前者はクロール間隔が長いため最新でなかったり漏れがあったりしますし、後者はキーワードが分からないとキャッシュにたどり着けな…
C#経験者が手っ取り早くF#を使おうとすると、クラス定義の文法がかなり違うことに戸惑うと思います。そこでクラス定義を中心にC#からF#への変換方法をまとめました。 F# - 七誌の開発Wiki すべてのサンプルでC#とF#を併記しています。C#の知識を基にF#を使い…
id:takuto_hさんの試作言語YellowをF#に移植しました。 YellowFS-20090720.zip F#は簡潔に記述できる言語です。単に文法の違うC#として使っても、記述性の面でメリットはあると思います。もっとも実用面ではVisual Studioのサポートが極端に違うためなかなか…
Silverlight 3がリリースされました。標準的に使う以下のライブラリを調査しました。 mscorlib.dll System.dll System.Core.dll System.Net.dll System.Windows.dll System.Windows.Browser.dll System.Xml.dll Silverlight 2と比較して、100個のpublicなク…
Cyanに引き続き、id:takuto_hさんの試作言語YellowをSilverlightに移植しました。Yellowのクラス構成もマップ化して分析しました。動作確認とソースのダウンロードは以下です。 Yellow for Silverlight Yellow クラスマップ YellowもCyanと同様に少しの修正…