本当にくだらない質問ですみません。
フォームの背景を現在バックグラウンドに表示されているものに
してみたいんです。要は透明なんですけど、フォームの背景としたいんです。
調べてみてリージョンというものを使ってみたのですが、透明にはなるものの、
透明にした所をクリックすると、作ったアプリがバックグラウンドに行って
しまい、元々バックグラウンドにあったはずのエクスプローラがアクティブ
になってしまいます。そうではなく、透明な部分をクリックしても
作ったアプリのフォームの背景をクリックした状態と同じにしたいんです。
アプリのバックグラウンドにあるものを画像データとしてフォームの背景に
貼り付ける・・・と言った方がよいのでしょうか・・・。
そんな方法はありますでしょうか?
これができると、とっても見づらいおちゃめなアプリができると思うんですけど・・・。
まだ呆れないでください。もうひとつあるんです。
リソースに実行ファイルって登録できるのでしょうか?
そして、そのEXEをファイルに書き出すとEXEができちゃう・・なんて。
EXEから子EXE誕生・・・みたいな感じで面白いと思ったので・・・。
お待たせしました、呆れてください・・・。(^^;
p.s.でも知っておきたい・・・
Delphiのバージョンによっては、AlphaBlendというプロパティがTFormクラスにあります。
これで透過するフォームは作れますね。
ただし、Windows2000/XPのみです。
win95/98で同じようなことをするには、フォームを表示する前のデスクトップをキャプチャしておき、それを描画します。
透過したい場所の後ろにアニメーションなどがある場合は、当然止まって見えます。
http://torry.net/ でこれを実現するコンポーネントがあったような気がします。今あるかどうかはわかりません。
EXEの登録ですが、できると思いますよ。
単にファイルを入れたいのであれば、
Test File DISCARDABLE "ファイル名.exe"
などとすれば入ります。
それをファイルとして書き出せば、実行できます。
>透明
丁寧に教えてくださってます。
他にもタイマーなどと組み合わせてみられては。http://www.sakaki.keiaikai.or.jp/faq/delfaq001.html
>EXEから子EXE誕生
わかりません。
ではm(_ _)m
> 要は透明なんですけど、フォームの背景としたいんです。
まず、真後ろの背景ではなく、壁紙を表示する方法、
これはとても簡単です。
WM_EraseBkGnd というウィンドウメッセージがあるので、
(メッセージメソッドについては、ヘルプ参照、それ以前にウィンドウメッセージって何?というのは、うちの旧学校にかいてますから、見てみてください)
それを、WM_IconEraseBkGndというメッセージに差し替えれば、
フォームの普通の背景の変わりに、壁紙が表示されます。
(このテクニック、よく見かけるので、わからない部分があれば、インターネットを検索してすぐに見つけられるでしょう)
二つ目、ちゃんと、真後ろの背景を表示する方法。
Delphiではそういうことのできる方法は知りませんねぇ。
C言語用のものですけど、硝子窓ライブラリというものがあって、
それでOSに関係なく、半透明表示ができるようになるようですね。
フォームの一部だけ透過みたいなこともできるようなので、
もし、どうしてもDelphiでやりたいのであれば、
それをダウンロードしてDelphi言語に翻訳するしか…。
(それとも、作者さんに話してみれば、もしかしたらいい回答が得られるかもしれませんね)
窓立て & C++のページ(硝子窓ライブラリがあります) 『 http://www.ksky.ne.jp/~seahorse/ 』
> リソースに実行ファイルって登録できるのでしょうか?
リソースは、どんなファイルでもいいはずです。実行ファイルも結局、ただのバイナリファイルですから。
みなさまいろいろと勉強になりました。
どうもありがとうございます。
にしの様。
毎度毎度ご親切にありがとうございます。
http://torry.net/ を訪れてみたのですが、
首吊って死んじゃいそうになりました。^^;
子EXEも無事できました。ファイルとして出力するだけでよかったのですね。
おえい様。
そちらのサイトを見て、一度動かしてから発言したのですが、
イメージ等をフォームに貼り付け、フォームを移動させたら
イメージが消えてしまったので「ダメだぁ・・」と思ってしま
ったんです。が、単に移動した際イメージの再描画を行ってい
なかっただけだったようです。^^;
たかみちえ様。
そのようなわけで問題ありませんでした。
http://www.ksky.ne.jp/~seahorse/ も訪れてみたのですが、
404になっていました。
みなさま、本当にご親切にありがとうございました。
なんだか楽しくなってきました。^^
ツイート | ![]() |