DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

TopMostのテクニック


とりあえず正月期間ということで、もういちど。


    (~ヽ            γ~)"""
     |ヽJ       .あ     し' |
     |  (~ヽ     .け  γ~)  |
   (~ヽー|ヽJ     ま   し' |ーγ~)
   |ヽJ  |  |   お .し   .|  |  し' |
   |  |  |―|   め .て   |―|  |  |
  ミリ(,,゚Д゚)彡  で    ミ(゚Д゚,,)ノ彡
  ミUミソ彡ミつ   と    (/ミソ彡ミU彡
   》======《   う      》======《
   |_|_|_|_|_|_|_|         |_|_|_|_|_|_|_|
    ∪''∪           ∪''∪    

いや、、、、AA使い忘れてたので、、、、


さて、めでたいのでちょっぴり人のBlogネタの問題を解決してあげましょう。

ちょっと他アプリを最前面化するソフトをつくっておりまして。
TOPMOST指定することで
普通にうまくいっていたので、えらく満足していたのですが
なぜかExcelだけが誤動作していました。


Delphi excel topmost でググって
ここみて試してわかりました。
Vista?で?Excel?を最前面に表示する - Moo Soft

一般的にDelphiでTopMostで紹介されているテクニックとは
APIのフラグが一つだけ違います。

"SWP_NOOWNERZORDER"
これが、Delphiテクニック系でTopMostで調べても
たぶんほとんど出てこないんじゃないかな。

最前面化について知ろうとして"過去ログ"みても
Delphiで、このフラグが最前面化とExcel誤動作と関連する情報なんて
みつかるのかよ~、と思いますが
※だから"過去ログ"至上主義は馬鹿だと思うわけですが


俺と全く同じ悩みをblogで伝えていらっしゃった方がちょうど丸一年前に
記事をかいています。

緋ノヒカリ 200702

Delphi製アプリの問題はいつものTApplication問題なのでしょう。
D2007で作成したアプリならこの問題は発生しないでしょうし
アプリケーション側でTApplicationではなく
メインウィンドウのハンドルを指定して対応する必要がありますね。

Excelに関する最前面指定の問題は、このSWP_NOOWNERZORDERが
未指定なことでしょう。

いろいろ知識を得て上手に楽にアプリをつくっていきましょう。

ということで、まとめておきました。
ハンドルを指定して最前面表示にする

最近、結構更新しているんですよ。
DelFusa Floor
よろしくです。
スポンサーサイト

| 未分類 | 02:13 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://delfusa.blog65.fc2.com/tb.php/99-593803d6

TRACKBACK

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。