「開発室:備忘録」の版間の差分

編集の要約なし
 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
==はじめに==
==Mery 3 (コードネーム: Alpaka)==
Mery のエディタエンジン TNotePad の作者さんの開発記録によると TNotePad (真魚) の 64 ビット版は開発・公開を中止されたようです。Delphi XE2 では無理という雰囲気の内容でしたので、Mery の 64 ビット対応についても私の技術力でどこまで対応できるかは分かりませんが、最悪、やっぱ開発やめますというケースも想定してこの「開発室」でこっそりベータ版を公開していこうと思います。
Mery のエディタエンジン TNotePad の作者さんの開発記録によると TNotePad (真魚) の 64 ビット版は開発・公開を中止されたようです。Delphi XE2 では無理という雰囲気の内容でしたので、Mery の 64 ビット対応についても私の技術力でどこまで対応できるかは分かりませんが、最悪、やっぱ開発やめますというケースも想定してこの「開発室」でこっそりベータ版を公開していこうと思います。


Alpaca と Alpaka のどっちが正しいのか分からないけど、K の方が文字のバランスが良いし '''Mortal Kombat''' みたいでカッコイイ。
Alpaca と Alpaka のどっちが正しいのか分からないけど、K の方が文字のバランスが良いし '''Mortal Kombat''' みたいでカッコイイ。


==予定==
==予定==
11行目: 10行目:
*Tidy HTML5 採用
*Tidy HTML5 採用
:→ 2.5 で対応済
:→ 2.5 で対応済


==開発環境==
==開発環境==
24行目: 22行目:
**Visual C++ 2015 だとオーバースペック
**Visual C++ 2015 だとオーバースペック
**鬼雲、Tidy、Hunspell の 32 ビット版、64 ビット版がそれぞれビルドできれば何でも良い
**鬼雲、Tidy、Hunspell の 32 ビット版、64 ビット版がそれぞれビルドできれば何でも良い


==現状==
==現状==
38行目: 35行目:
*[https://github.com/htacg/tidy-html5 Tidy HTML5] 64 ビット版のビルド
*[https://github.com/htacg/tidy-html5 Tidy HTML5] 64 ビット版のビルド
:→ なんかビルドできたっぽい
:→ なんかビルドできたっぽい


==注意==
==注意==
*プラグインメソッドの Editor_SetCaretPos などの引数 TPoint が 32 ビットなので TNativePoint に変更する
*プラグインメソッドの Editor_SetCaretPos などの引数 TPoint が 32 ビットなので TNativePoint に変更する
:→ 完了
:→ 完了


==問題==
==問題==
55行目: 50行目:
*Delphi XE2 だと不具合でリソースが英語 (1033) になる
*Delphi XE2 だと不具合でリソースが英語 (1033) になる
:それほど問題はなさそうだけどなんだかなぁ…
:それほど問題はなさそうだけどなんだかなぁ…


==アイコン==
==アイコン==
68行目: 62行目:
[[ファイル:Mery_Icon3.png]]
[[ファイル:Mery_Icon3.png]]


*最終候補
[[ファイル:Mery_Icon4.png]]


==Delphi 10 Seattle の不具合==
==Delphi 10 Seattle の不具合==
73行目: 69行目:


Windows 10、ディスプレイ 1 (メイン: 125%)、ディスプレイ 2 (サブ: 100%) の Per-Monitor DPI で確認
Windows 10、ディスプレイ 1 (メイン: 125%)、ディスプレイ 2 (サブ: 100%) の Per-Monitor DPI で確認


===Per-Monitor DPI にてフォーム表示直後にスケーリングされない===
===Per-Monitor DPI にてフォーム表示直後にスケーリングされない===
84行目: 79行目:


*<span style="color:crimson;">なお、Delphi 10 Seattle Update 1 ではもっと派手にぶっ壊れている模様</span>
*<span style="color:crimson;">なお、Delphi 10 Seattle Update 1 ではもっと派手にぶっ壊れている模様</span>


===Per-Monitor DPI にて Constraints を指定していると正常に動作しない===
===Per-Monitor DPI にて Constraints を指定していると正常に動作しない===
122行目: 116行目:
end;
end;
</source>
</source>


===Constraints を指定しているとスケーリング後のフォームサイズがおかしい===
===Constraints を指定しているとスケーリング後のフォームサイズがおかしい===
130行目: 123行目:


この問題は ChangeScale の後でタイトルバーの高さをスケーリングした場合の差分を足してやることで回避は可能だが結果的に高さが WM_DPICHANGED で送られてくる LPARAM の中の高さと異なってしまうため、ディスプレイをまたぐ位置によってはサイズが変更されなかったり無限ループが発生する恐れがあると思われる。
この問題は ChangeScale の後でタイトルバーの高さをスケーリングした場合の差分を足してやることで回避は可能だが結果的に高さが WM_DPICHANGED で送られてくる LPARAM の中の高さと異なってしまうため、ディスプレイをまたぐ位置によってはサイズが変更されなかったり無限ループが発生する恐れがあると思われる。


===FormCreate 時のフォームの PixelsPerInch がおかしい===
===FormCreate 時のフォームの PixelsPerInch がおかしい===
143行目: 135行目:


*いずれの場合も FormShow 以降に処理を書けば正しい PixelsPerInch を取得できる
*いずれの場合も FormShow 以降に処理を書けば正しい PixelsPerInch を取得できる


===WM_DPICHANGED の実装における問題===
===WM_DPICHANGED の実装における問題===
207行目: 198行目:
function EnableNonClientDpiScaling; external user32 name 'EnableNonClientDpiScaling' delayed;
function EnableNonClientDpiScaling; external user32 name 'EnableNonClientDpiScaling' delayed;
</source>
</source>


===FormCreate でフォームのフォントを変更してもスケーリングされない===
===FormCreate でフォームのフォントを変更してもスケーリングされない===
スポンサーリンク