2026/02/11(水) [n年前の日記]
#1 [lazarus] LazarusでWebView2を使いたい。その2
Lazarus 4.4 で作成したGUIアプリのフォーム上に、HTML + JavaScript を表示できるコンポーネントを置きたい。
_昨日、WebView4Delphi をインストール して動作確認してみたけれどイイ感じに動いてくれてるようなので、フルスクリーン表示にしたり、キーの押し下げ、マウスボタンの押し下げ、マウスカーソル移動で終了する処理を入れたり、多重起動禁止処理を入れたりしていた。
ここまでやったらスクリーンセーバっぽい動作になった。
さて、ここからどうしよう…。 _先日作成したスクリーンセーバのラッパー っぽくまとめてしまえば、HTML + JavaScript を書くだけでWindows用のスクリーンセーバが作れますよ、という状況が実現できそうな気がしているけれど…。いっそのこと、そこまでやってしまおうか…。
_昨日、WebView4Delphi をインストール して動作確認してみたけれどイイ感じに動いてくれてるようなので、フルスクリーン表示にしたり、キーの押し下げ、マウスボタンの押し下げ、マウスカーソル移動で終了する処理を入れたり、多重起動禁止処理を入れたりしていた。
- フルスクリーン表示はフォームをフルスクリーン表示するやり方がそのまま使えた。
- キーの押し下げはフォームの KeyPreview を有効にして OnKeyDownイベントで処理できた。
- マウスボタンの押し下げとマウスカーソル移動は、WebView2側が取ってしまってフォーム側のイベントは反応しないので、タイマー(TTimer)を置いて50ms間隔で監視して処理するようにした。
- マウスボタン押し下げは (GetAsyncKeyState(VK_LBUTTON) and $8000) <> 0 でチェックできる模様。uses に windows を追加しておく必要有り。
- マウスカーソルの座標は GetCursorPos(NowPos) で取得できる模様。
- 多重起動禁止は Mutex を使った。これも uses に windows を追加すれば使えるようになる。
ここまでやったらスクリーンセーバっぽい動作になった。
さて、ここからどうしよう…。 _先日作成したスクリーンセーバのラッパー っぽくまとめてしまえば、HTML + JavaScript を書くだけでWindows用のスクリーンセーバが作れますよ、という状況が実現できそうな気がしているけれど…。いっそのこと、そこまでやってしまおうか…。
[ ツッコむ ]
以上、1 日分です。