喫茶XRAYトップページ

[スレッド全体
]

[3469] Re:姑息な方法 修正版返信 削除
2010/6/17 (木) 20:15:46 Mr.XRAY
修正しました.
こちらの方がいいようです.
ダウンロードのプロジェクトも更新しました.
動作確認環境は,Windows XP(SP3) + Delphi 2010 + Excel2000 です.
他の環境では全くテストしていません.

procedure TplExcelFormEx2.WndProc(var Message: TMessage);
var
  DialogWnd : HWND;
  ARect     : TRect;
begin
  inherited;

  if Message.Msg = WM_ACTIVATE then begin
    DialogWnd := FindWindow(nil, '印刷');
    if DialogWnd = 0 then exit;

    Windows.GetClientRect(DialogWnd, ARect); //ClientRectの方がいいですね (^^;

    MyPanel.Width        := 150;
    MyPanel.Height       := 30;
    MyPanel.BevelOuter   := bvNone;
    MyPanel.ParentWindow := DialogWnd;

    MyPanel.Left := 0;
    MyPanel.ToP  := (ARect.Bottom - ARect.Top) - MyPanel.Height;
    MyPanel.Update; //Updateする
  end;
end;

[3470] Re2:姑息な方法 修正版返信 削除
2010/6/17 (木) 20:25:52 Mr.XRAY
質問メールを下さった方へ.
情報の共有の意味でこちらにレスしました.

メールの返信はしませんので,このスレッドを参考にしてください.
これで問題があれば,このスレッドに書き込みしてください.
どうしてもここに書き込みしにくい場合は,メールをください.

メールに関しては,以下の注意をお読みください.
事情により設定ができない場合は,その旨,メールに書いていただける
と幸いです.

では,がんばってください.
健闘を祈っています.

http://mrxray.on.coocan.jp/Delphi/Info/OtherInfo19_OutlookMail.htm

[3472] Re3:姑息な方法 修正版返信 削除
2010/6/18 (金) 09:38:27 Bigstone 〔HomePage
▼ Mr.XRAYさん

今回の質問に対し、早々対応して頂き誠に有難うございました。
おかげさまで解決する事ができました。
このサイトもコンポーネントもXRAYさんの発言も、毎日見させて
させて頂いています。Delphi で開発するにあたって非常に参考に
なり助かってます。このような掲示板に発言するのは初めてで
どうしょうか迷っていましたがただお礼を言いたくて書きました。

これからもどうぞよろしくお願いします。

[3473] Re4:姑息な方法 修正版返信 削除
2010/6/18 (金) 10:54:25 Mr.XRAY
▼ Bigstoneさん,こんにちは.

こちらにおいでいただいて,申し訳ありません.
質問の内容がエクセル操作フォームExの改良にとって,
大切な内容でしたので,他の方にも内容を知っていただきたい,
というのが趣旨です.ご理解ください.

おかげで,他のバグもついでに見つかりました.
修正はいつになるかわかりませんが(笑)

不特定多数の方が見るような,掲示板に書き込みをするというのは,
だれでも躊躇(ちゅうちょ)すると思います.
私も,パソコン通信時代,Niftyの会議室に初めて発言する時は,
「これでいいのかな.間違っていないかな」と,[送信]ボタンを
クリックするまで,結構... でした.今となっては懐かしいですが.

# また一人,こちらに引き込んでしまいました.
# メールで切り出すのもタイミングが中々...


[3471] Windows7 + Excel2007での修正返信 削除
2010/6/17 (木) 23:28:34 Mr.XRAY
> 他の環境では全くテストしていません.

Windows 7 U64 + Delphi 2010 + Excel2007でテストしてみました.
以下の修正が必要です.

修正前
>     MyPanel.Update; //Updateする

修正後
    //Window 7 + Excel2007ではShowWindowが必要(Updateは不要)
    ShowWindow(DialogWnd, SW_SHOWNORMAL);
    //Windows XP + Excel2000ではUpdaeが必要(ShowWindowは不要)
    MyPanel.Update;


[3476] Re2:姑息な方法 修正版返信 削除
2010/6/18 (金) 19:17:04 Mr.XRAY
>     DialogWnd := FindWindow(nil, '印刷');
>     if DialogWnd = 0 then exit;


これダメですね.Windows 7 + Excel2007でやったら,
エクセル操作フォームExの[印刷]ボタンを検出してしまいました.
前の

    DialogWnd := Message.LParam;
    if GetWindowTextStr(DialogWnd) <> '印刷' then exit;

にしたらOKでした.当然か!?
単に,タイトルが[印刷]のウィンドウを探すのではなく,
アクティブになったウィンドウの[印刷]のウィンドウを探すのだから?


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82