...ing logging 4.0

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

D言語

DFL: タイムチャートを描くサンプルコード

std.csvをデータモデルとして受け取って、タイムチャートを描くTimeChartRendererクラスを、dfl.chartモジュールに追加しました。 2023年末にdfl.printingモジュールを作り始めたときからここを目指していましたが、やっとできましたね。 縦軸は信号名、横軸…

DFL: 折れ線グラフを描くサンプルコード

std.csvをデータモデルとして受け取って、折れ線グラフを描くLineGraphRendererクラスを、dfl.chartモジュールに追加しました。 TableRendererに負けず劣らず、折れ線グラフの見かけを自由に変更できるようにしています。 CSVの要件 上図中のコードに示した…

DFL: 表を描画するサンプルコード

作図機能を担うdfl.chartモジュールをDFLに追加しました。 まだ、表を描画するTableRendererクラスしかありませんが、 今後は、線グラフ(LineGraphRenderer)や、印刷モジュールdfl.printingを書くそもそもの目的であった タイムチャート(TimeChartRendere…

DFL: 印刷プレビューダイアログのサンプルコード

印刷プレビューダイアログ PrintPreviewDialog が最低限動くようになったのでGitHubで公開しました。 前回記事で述べたPrintDialogとPageSetupDialogの実装ではコモンダイアログを呼び出していますが、PrintPreviewDialogは自分で実装しました。 ツールバー…

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

2024/5/15更新:Graphicsオブジェクトの座標系を、MM_TEXT(96dpi)から、GraphicsUnit.DISPLAY相当に変更したので、サンプルコードの座標系が変わりました。 DFLの印刷モジュールがだいたい動くようになったので、試験的に公開しました。 基本的な使い方は、W…

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] chart.d [x] 表を描画するTableRendererクラスを作る [x] 折れ線グラフを描画するLineGraphRendererクラスを作る [x] タイムチャートを描画するTimeChartRendererクラスを作る [x] clipboard.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…