• ベストアンサー

Delphiで最前列にFormを表示し、フォーカス

他のアプリを操作中に、Delphiで作成したFormをフォーカスを奪わずに表示する方法を調べています。 C++Builderなら 記事:最前面に表示するが、フォーカスは奪わない方法 http://ogawa-sankinkoutai.seesaa.net/article/115187189.html で出来るようですが、Delphiならどのようにすればいいんでしょうか? Delphi XE5 Starterを使っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

windows の提供するAPI を呼び出して実現する物なので、基本的に関数名や引数設定法は同じと思うけど。 10年前にやったきりなので最近のDelphiヘルプがどのくらい親切か解らないけど、「API 呼び出し用のヘルプ」も一緒にインストールされてると思うので、そのヘルプで WindowPos , NOSENDCHANGING の単語検索すると、例文付きの説明が出てくると思うのだけど。

kihonkana
質問者

お礼

すばやい回答ありがとうございます。 WindowPosをDelphiのヘルプを検索したところ、 「このトピックには現在ドキュメントが存在しません。「ノート」を利用してこのトピックの改良について話しあうことができます。」と出てきました。 そのため WebでWindowPosを検索したところ、 http://www.geocities.jp/asumaroyuumaro/program/winapi/window/setwindowpos.html を見つけ、その中で 「|」でなく「or」と書かれているのがわかりました。 それで、 SetWindowPos( Form1.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE or SWP_NOSENDCHANGING or SWP_SHOWWINDOW ); としたところ、うまく目的の動作を実現することができました。

関連するQ&A

  • DelphiでFormを透視化しするには?

    Delphi 6, Windows 98 です。Formの一番上のバーをマウスで押すとこのFormが透明になり、その裏側に表示されている別のウィンドウの文字(たとえば新聞記事)などを読みたいのですが、どうやれば前面のFormを透視化できますか、どなたか教えてください。

  • Delphi XE5 starterでSQLite

    こんにちはお世話になります。 Delphi XE5 starterでDBを操作する学習を始めようとしています。 なんとなくSQLiteを使おうと思っています。 starter版でなければ、FireDacを使用すればできるようですが、 starter版の場合はどうすればいいのでしょうか? また、参考になるようなサイトがあれば教えていただければ嬉しいです。

  • Formの外にある画面の色を取得

    Delphi XE3で始めたものです。 今まではアプリの自Formに画像をロードしてマウスをクリックするとその色を取得するものを作って動かしていましたが、最近自Formの外にある画面の色を取得するソフトがあることを知りました。 これをDelphiで作ってみたいと思いますがDelphiでこのようなことができる方法があったら教えてください。

  • Form2のボタンを1回押しても戻らない

    Delphi XE3でDelphiをいじっています。自動で作成したForm2にボタンを2個配置しました。片方のボタンのプロパティーはMrOK、他はMrCancelにしてあります。 Form2をShowModalで呼び出してForm2を表示した状態でボタンを押してすのですが2回押さなければForm1に戻りません。1回押しで戻るようにするにはどうしたらよいか教えてください。

  • Delphi のフォーム操作について

    Delphi のフォーム操作について 初めて質問させてもらいます。 Delphiで、ファイルをコピーしレジストリに登録したりするソフトウェアのインストーラーのようなもの、たとえばInstallShieldのようなものを作りたいと思ったのですが、 ”次へ”ボタンを押したときにウィンドウは消えず位置も変えないで 線の上側のインストール先を選択させる画面から”現在コピーしています...”のような画面に移り変わるようにするにはどうすればいいのでしょうか。 Button1を ”次へ”ボタン としたとき procedure TForm1.Button1Click(Sender: TObject); begin form1.Destroy; begin Form2.Show; end; end; という書き方をすれば似たようなことができますが、いわゆるInstallShieldのようにはなりません。 どのように表示させればこの場合はベストなのでしょうか。 2ヶ月ほど前から少しVB.NETをいじり、最近Delphiをはじめ、 いろいろ検索してみて http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=14#0295.txt こちらの記事を見つけ、参考にしましたが使いこなせませんでした。 VB.NETでも同じようなことを試みましたが、参考記事が見つからず 上で書いたような表示方法をしない形で書きました。 環境は Turbo Delphiを使用しています。 どうかご教示ください。

  • DelphiでSelectDirectoryを..

    Delphi XE5 Starterを使っています。 SelectDirectoryを使うためにFileCtrlをuse節に記入するとビルドの時に「W1005: ユニット 'FileCtrl' は特定のプラットフォームに固有のものです」という警告が出ます。 私のWindows8.1では正常に動作していますが、他のPCやOS(XP以降)では動作するのでしょうか? だめなら、ディレクトリを選択する方法が他にあるでしょうか?

  • DelphiXEでコンパイルできません

    先日DelphiXEを購入しました。 XE 超初心者なので,こんなことがと言わずに助けてください。 DelphiXEを起動して, 1 「Fileメニュー」から「新規作成」「フォーム- Delphi」で,Formを開く 2 FormにTbuttonを一個乗せて, 3 button1をWクリックして,procedure TForm1.Button1Clickにshowmessage('Hello');を記述 Delphi5までは,ここでF9を押せば直ちに実行できたはずなのですが,全く反応無し 「実行メニュー」も全てグレーアウトしたまま。 ヘルプも複雑すぎて・・・とっかかりが判らない。 Delphi XE Starter Essentials eBookもDLしてみたけど・・・英語力ゼロ 旧Delphi5のプロジェクトはちゃんとコンパイルできたのですが,XE上で新規作成の場合はなにか基本的な設定が足りないようです。 どうやったら,コンパイルできるのか教えてください。 なにとぞ,なにとぞ よろしくお願いいたします。 m(_ _)m

  • Delphiでヘルプメニューを右端に

    Delphi XE5を使っています。 ヘルプメニューを右端につけて、クリックしたらいくつかのサブメニューが表示され、そこから選択するようにしたいのですが、なにか方法がありますか? メニューがヘルプだけなので、普通のメニューだと左端になって使いにくいです。 右クリックで表示するメニューは、たまに使うユーザーにはわかりにくいでしょうし...

  • 画面を拡げると、隠しているグループボックスが、後れて現れる。

    delphiで、ひそひそと、プログラムを作っているのですが。 アプリの拡げる仕組みのセオリーが分からず、とりあえず、ボタンを押すと、アプリのサイズを拡げる方法をとっています。 Form1.height := 200  ; → 400 これだと、隠している200にある、グループボックスが後れて、表示されるのです。 細かいことなのですが、少しきになって。 うまい回避方法や、アプリを拡げるセオリーがあったら、教えてくださいね。

  • iPhoneアプリの作成でフォーカスの合わせ方

    iPhoneアプリを作成しています。 画面が表示された時に、テキストフィールドをデフォルトでフォーカスを合わせたいのですが、 その方法が分からず困っております。 iPhoneの時計アプリに、やりたい事のサンプルがあります。 「時計起動」→「アラーム」→右上の「+」→ラベルをクリック →この時、ラベル入力画面が表示されますが、テキストフィールドにフォーカスが合ってます。 これをやりたいのです。 (添付の画像) 画面もアプリも完成していて、このフォーカスを合わせるところだけ、実装がまだという状態です。 以下のサイトは参考にしたのですが、よく分かりませんでした。 http://kuar.blog.shinobi.jp/Entry/418/ どなたかご存知あれば、教えて頂けませんでしょうか。