Vcl

拡張メタファイルの描画精度

Windows上でベクター画像を取り扱うプログラムを作成する場合、サイズを変更しても劣化のないメタファイル・拡張メタファイル形式は一定のメリットがある。 特にクリップボード経由の場合は便利なことが多い。 一方、メタファイルを用いる場合、ビットマップ…

フォームの閉じ方とModalResultの設定について

VCLでフォームを表示させ終了時にフラグで処理を変更したいときにフォームのModalResultを参照するケースがある。 ただし、ModalResultの設定については注意しなければいけない点があるのでメモ。 また、フォームの閉じ方についてもメモ。 ShowModalで表示さ…

FiremonkeyとVCLで共有するコードの作成(2022-03-16更新)

このところVCLで作成した共用コードをFiremonkey(FMX)でも用いることができるように手直しをするようになった。 WindowsオンリーであればVCLを使う方が楽だ。一方3DやAndroidではFiremonkeyを使う。 ランタイムだけを使うコードであれば問題は大きくないが、…

VCLフォームを含むDLLを作る場合に必要なこと

DelphiあるいはC++ BuilderでVCLのフォームを含むDLLを作る際に必要なこととして、最初にメインフォームのハンドルを渡す必要がある。 プログラム本体側のApplicationと、DLL側のApplicationは別のインスタンスで、同期しない。 このため、DLLで何も考えず以…

SelectDirectoryでリンカエラー

SelectDirectoryを使うプログラムを書いているとき、リンカエラーを起こすことがある。 どうも、よくわからずいろいろしている内にリンクできてなんとなく放置していた。今回、C++ Builderが10.3(Rio)になったのので、既存のプログラムをコンバートしてみる…