...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

D言語

DFL: 印刷のサンプルコード

DFLの印刷モジュールがだいたい動くようになったので、試験的に公開しました。 基本的な使い方は、WinFormsのPrintDocument、PrintDialog、PrintSetupDialog関係と大体同じなのですが、 WinFormsでは色々な使い方ができるように汎用性を高めてあるせいか仕様…

DFL: 既定プリンターの給紙方法を取得する

年末から、DFLに印刷機能を追加しようとしている。 GDI Print APIという古いAPIを使っているので日本語の資料は色々あるけど、先は長そうだ。 まずは、APIの使い方を調べるため、ページ設定ダイアログと印刷ダイアログを表示したり、印刷するには印刷できた…

DFL: RichTextBoxのサンプルコード

RichTextBox(リッチエディットコントロール)のサンプルコードです。 全文を貼ると長くなるのでソースはリンク先を参照してください。 https://github.com/Rayerd/dfl/blob/master/examples/richtextbox/source/richtextbox_sample.d サンプルを起動すると…

RichEditコントロールからテキストを取得する

DFLのRichTextBox用にせっかく書いたけど不要だった・・・ここで供養する。 // この辺のインポートが必要だけど競合するので選択インポートする。 private import dfl.internal.winapi; private import core.sys.windows.richedit : GETTEXTEX, GETTEXTLENGT…

DFL: ToolBarのサンプルコード

ツールバーのサンプルコードです。 長くなるのでソースコードはこちらにリンクを張っておきます。 https://github.com/Rayerd/dfl/tree/master/examples/toolbar/source 下図の左から、普通のボタン、トグルボタン、セパレータ(区切り)、ドロップダウンボ…

DFL: ContextMenuのサンプルコード

コンテキストメニューのサンプルです。 特に難しいことはないですね。 ただ、mouseDownイベントを使って右クリックを検出した方が、DFLらしいかもしれません。 import dfl; import core.sys.windows.windows; version(Have_dfl) // For DUB. { } else { prag…

DFL: Timerのサンプルコード

Timerクラスのサンプルコードです。 Startボタンでカウントアップ開始、Stopボタンで停止します。 import dfl; import std.conv; version(Have_dfl) // For DUB. { } else { pragma(lib, "dfl.lib"); } class MainForm : Form { private Label _label; priva…

DFL: NotifyIconのサンプルコード

NotifyIconのサンプルコードです。 NotifyIconというのは、タスクバーに出るアイコンです。 上のスクリーンショットで右端にあるフェイスマークを表示しています。 import dfl; class MainForm : Form { private NotifyIcon _notifyIcon; public this() { th…

HBITMAP(DDB)からBITMAPINFO(DIB)を得る

GetDIBits()を使う、以上。 で終わる話なのですが、BITMAPINFOを作成するために必要なメモリサイズを算出するのに手こずったので、結果だけ置いておきます。 なお、このコードで作成されるのは、スクリーンショットを撮ったときに得られるビットマップデータ…

BITMAPINFO(DIB)からHBITMAP(DDB)を得る

CreateDIBitmap()を使う、以上。 で終わる話ではあるのですが、パックされたビットマップの場合、BITMAPINFOの先頭アドレスとBITMAPINFOHEADERの内容から、後に続くカラーマスクとカラーパレットのバイト数を算出して、ピクセルデータ列の先頭アドレスを求め…

BITMAPINFOから画像データ全体のバイナリ列を得る

かなり手こずったので結果だけ置いておきます。 ubyte[] getBitmapBuffer(BITMAPINFO* pbi) { assert(pbi); const uint bitsPerPixel = pbi.bmiHeader.biPlanes * pbi.bmiHeader.biBitCount; const uint colorMaskBytes = { if (pbi.bmiHeader.biCompression…

DFL: PictureBoxのサンプルコード

dfl/examples/picturebox at master · Rayerd/dfl · GitHub 画像ファイルを簡単に表示することができるPictureBoxクラスのサンプルです。 Bitmapクラスで読み込める形式の画像ファイルなら表示できるようで、bmp、jpgは表示できました。 未確認ながらgifも可…

DFL: ClippingFormのサンプルコード

https://github.com/Rayerd/dfl/tree/master/examples/clippingform 透過する部分を白色にしたビットマップを与えて、矩形でないウィンドウを作れるClippingFormのサンプルコードです。 ウィンドウタイトル(キャプション)がなく、かつ、常に最前面に表示さ…

DFL: Clipboardのサンプルコード

Clipboardクラスを使ってコピー・アンド・ペーストをする処理のサンプルコードです。 dfl/clipboard_sample.d at master · Rayerd/dfl · GitHub 簡単な使い方 長くなるのでここにサンプルコードを転記するのは止めておきますが、簡単に使い方を示します。 い…

DFL: やることリスト

TODO [-] application.d [-] base.d [x] button.d [x] clipboard.d より多くの標準クリップボード形式のサポート [x] clippingform.d [-] collections.d [x] colordialog.d [-] com.d [x] combobox.d [-] commondialog.d [-] control.d [x] data.d より多く…

DFL: ProgressBar のサンプルコード

DFL の ProgressBar クラスを更新しました。 表示形式を動的に設定できるようにしたり、マーキー形式の描画間隔を設定できるようにしたり。 さて、Windows の仕様で、ブロック形式(BLOCKS)の表示方法は、クラシックスタイルでしか使えません。こちらがクラ…

DFL: ToolTip の機能とサンプルコードの追加

ToolTip のサンプルコードを作成するついでに WinForms にあってこちらにない機能をいくつか追加しました。 バルーンタイプのツールチップ アイコンとタイトルの表示 アニメーション表示(フェードイン)なし フェードアウトなし 複数行の表示 &記号がアクセ…

DFL: GetOpenFileName と GetSaveFileName

DFL の OpenFileDialog では GetOpenFileName が使われていて、SaveFileDialog では GetSaveFileName が使われています。それぞれ、表示されるダイアログがプレースバーがないタイプでした。 プレースバーがあるタイプのダイアログにするには OPENFILENAME …

DFL: コモンダイアログのサンプルコード

ボタンの配置が微妙ですが、コモンダイアログのサンプルコードを追加しました。 以下のクラスのサンプルを含みます。 OpenFileDialog SaveFileDialog FolderBrowserDialog FontDialog ColorDialog あと PrintDialog が存在しますが、DFL には実装されていま…

DFL: ImageListのサンプルコード(ComboBoxも)

ここにコードを貼るのは省略しますが、ImageListのサンプルコードを追加しました。 下のリンクから参照してください。 dfl/examples/imagelist at master · Rayerd/dfl · GitHub ついでにComboBoxも使っているので、こちらのサンプルとしても使えます。 挙動…

DFL: ドラッグアンドドロップ(1)~DragAcceptFiles編~

DFL で Drag&Drop がうまくいきません、詳しい人教えてください!テストコードは http://t.co/ngKcdrHTtN #dlang— Seiji Fujita (@sfujita) 2014年2月9日 ソースはリンク切れのため今となっては詳細不明。 DFL のドラッグアンドドロップがうまく動かないとい…

DFL: Splitter コントロールのサンプルコード

github.com Splitter コントロールには最小幅を設定するプロパティがありますが、最大幅を設定するプロパティがないので、サンプルコードでは自前で実装しています。 方法は、Splitter の左又は上にあるパネルのサイズが変更されたときに、所定の最大幅を超…

DFL: ListViewコントロールのサンプルコード

github.com View.DETAILS: View.LIST: ListView コントロールのサンプルですが、アイコンを用意していないので、view プロパティに View.LARGE_ICON と View.SMALL_ICON を設定しても見栄えが悪いです。 あと、リストビューの詳細表示の1列目にはセンタリン…

DFL: ビジュアルスタイルの有効化

追記あり。 続・追記あり。 DFLに限らないけれども。 VisualStyle有効: VisualStyle無効: 以下のコードをソースファイルに追加してdmdでビルドすれば、実行ファイルと同時にマニフェストファイルが生成される。 実行ファイルを起動すれば、ビジュアルスタ…

DFL: StatusBarコントロールのサンプルコード

github.com ウィンドウにステータスバーを表示し、3つのパネルを追加します。 各パネルは borderStyle プロパティに StatusBarPanelBorderStyle を設定することで3種類の見た目に変更できます。 ウィンドウ内を左クリックすると左端のステータスバーにクリ…

DFL: TabContolのサンプルコード

github.com パネルコントロールの一種であるタブコントロールのサンプルコードを追加。 いつもどおり、WinFormsと同じ感じでできた。 パネル系のクラスを使うのは初めて書いたので、初めてついでにDockStyleを設定してみた。 ちゃんと動いているようだ。 imp…

DFL: Button、RadioButton及びCheckBoxのサンプルコード

ダイアログボックス的なやつなので、ウィンドウサイズを変更できないように設定している。 Doneボタンで各種設定を文字列で表示する。このボタンはフォーカスがこのウィンドウ内のどこにあっても、エンターキーで押すことができるように設定している。 Cance…

DFL: Labelコントロールのサンプルを追加

ほとんど又は全く触ったことがないコントロールの動作確認を兼ねて、サンプルコードを書いてみる。 まずは、Label (Static) コントロール。 コードは、本家の下記チュートリアルより。 wiki.dprogramming.com import dfl; version(Have_dfl) // For DUB. { }…

DFLのTextBoxがリターンキーとタブキーを正しく受け付けなかったバグを修正

github.com 全般的なこと 当初の想定よりも大規模な改修になってしまった。 基本的には、WinFormsのキー入力イベントシステムを踏襲した形に修正していく方針とし、DFLが元々使っているFormMessageFilterクラスへの依存を減らした。 キー入力イベントシステ…

vscodeのターミナルに出るdmdのコンパイルエラーからctrl+clickでジャンプできないので拡張機能code-dの最新開発版を取得してインストールする件について

目標 Visual Studio Code (vscode) で、D言語のソースをコンパイルしたときにターミナルに出るファイル名と行番号(マウスホバーで下線が出る部分)を ctrl+click して、そのファイルの該当行へジャンプできるようにする。 試行錯誤 最初から、問題タブでは …