さて、P4Dを昔取り上げたかと思います。
DelphiからPythonをコールできて戻り値も取れます。
これ大変便利なものですね。
PythonでGUIを作るのは骨が折れますが、Delphiで作ると
あっという間です。
なのでボタンを置いてPythonをCallするという使い方は
非常に有望です。
ですが、メインスレッドで動くみたいで、重い処理でブロックしてしまいます。
なので、TPythonEngineコンポをThreadで動かさないといけないことに
なります。メインスレッドがブロックしてもいいならそのまま使いますが
時計表示がとまったりタイマーが動かないなど弊害のほうが大きいかな。
単純にこのコンポをメインスレッドで生成してスレッド内で参照で
動かそうとしたら、うまく動かないです。
困ったのですが、結果はスレッド内でTPythonEngineを動的に
生成して、DLLのロード、アンロードをコードでやってあげたら
動くようになりました。
お困りの人は参考にしてください。
うまくやるとDelphiアプリを動かしたままで、
スクリプトの動的ローディングにしてやると
ホットリロードみたいに使えそうです。
便利ですねえ。
ではでは。