HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0321
nepisat他の自分で作ったHSPソフトの画面を共有したい7未解決


nepisat

リンク

2015/3/21(Sat) 22:09:03|NO.68009

こんにちは。
他の自分で作ったHSPソフトの画面を共有する方法を教えてください。
まず、HSPソフトAがあったとして、その画面には画像やボタンがあったとします。
そのソフトAを他のHSPソフトBの画面内に取り込むことはできるのでしょうか?
ソフトAもBも自分のソフトなので取り込まれる側に処理を追加できます。



この記事に返信する


cats

リンク

2015/3/21(Sat) 22:19:25|NO.68010

APIでメモリ共有ができるので、ソフトAとソフトBで画像サイズ分のメモリを共有しておき、
ソフトAで画像データのポインタから画像サイズ分をを共有メモリに書き込み、
ソフトBで共有メモリから読み込むようにすれば良いです。



nepisat

リンク

2015/3/22(Sun) 13:54:32|NO.68024

catsさんありがとうございます。
画像は出せたとして、ボタン等はどうすればよいのでしょうか?



cats

リンク

2015/3/22(Sun) 15:30:32|NO.68028

画像だけでなくオブジェクトも同じようにするのですか。
ならAの保有するオブジェクト等のハンドルも全て共有し、
Bの方からそのハンドルのオブジェクトの位置やサイズなどの情報を調べてコピーすればいいと思います。
この方法だと画像ボタンの画像など少し限界がありますが、どちらも自分の作るものなら面倒ながら可能でしょう。
完全に同じ動作をさせるなら、やったことはありませんがオブジェクトに関するメモリも共有してやれば良いかと。



skyblue

リンク

2015/3/23(Mon) 13:49:43|NO.68052

もしくは、HSPの画面領域データをコピーして共有する。
VRAMとは呼べません。VRAMバッファーと呼ぶのが正しい。



kanamaru

リンク

2015/3/24(Tue) 16:44:09|NO.68096

それなら過去に投稿されているようなのでいいと思います。
しかし、難しく考えていると思います。
自分のソフトなので処理を追加できるとあるので、
片方は画像(これをソフトAとします。)でも、クリックしたマウス座標を
ソフトBに送信してそれに応じて処理するようにプログラムを作れると思います。
ソフトBでマウスイベントを取得すればソフトAでginfoで座標計算していけます。
かえって複雑に考えているとは思いますが、この方法の利点はいくつかあって、
・catsさんのような限界がない。(正確には限界はある。それについては後述)
・外部dllを使わない。
・使う共有メモリが少ない。
・リアルタイムに連携できる。
mesboxなどがあったらできない所もありますが、共有メモリで
文字列を共有できるかな?
あと、この方法の問題点についても書いておきます。
・片方のソフトが極端に重くなる。
・ボタンを押したときのへこむ感じ(と言ってわかりますか?)がソフトAではない。
2個目の問題点はソフトAの画像の更新速度でどうにかなるとは思う。
利点、問題点両方ありますが、どうでしょうか?
長い文章ですいませんでした。



nepisat

リンク

2015/3/24(Tue) 17:05:58|NO.68099

以前は特定ウインドウ内にaxをぶち込むrun命令をしたかったので、
これと同じようなことをするのはメモリ共有や、監視処理でOKだと思います。

ウインドウの中身をすべて他のウインドウの中に移動する、流し込む方法があれば教えてください。
なければメモリ共有にします。



nepisat

リンク

2015/3/24(Tue) 17:07:39|NO.68100

>>以前は特定ウインドウ内にaxをぶち込むrun命令をしたかったので、
これと同じようなことをするのはメモリ共有や、監視処理でOKだと思います。


以前は、と特定ウインドウ内にaxの内容をぶち込む(run命令と同じ)ことをしたかったので、
run命令以外の方法としては、メモリ共有や、監視処理でOKだと思います。



ONION software Copyright 1997-2023(c) All rights reserved.