掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Excelプレビュー表示時のメニューボタンを無効にするには? (ID:20493)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
スレッドの使用で少し手こずっているのですが, 以下のソースで実行しデバックで追ったところ, スレッド側のExcuteのルーチンが通っていないようなのです。 スレッドの使用で変な部分があるのであれば教えてもらえると幸いです。 スレッドの使用方法が根本的に間違えてる気もするんですが・・・(汗) (Application.Processmessagesとか組み込んだりしましたが動きがまちまちだったので外しています。) ///////////////////////////////////////////////////////////////// //======================================================= //メイン側 //======================================================= type TForm1 = class(TForm) ・ private ・ public ExcelWorkSheet: Variant; end; procedure TForm1.EnablePreview(xlsWks: Variant); var PreviewThread: ExcelPreviewThread; TimerID: WORD; procedure pEnablePreviewTimer(hWnd: WORD; uMsg: WORD; idEvent: WORD; dwTime: WORD); var i: Integer; begin hWnd := FindWindowEx(0, 0, 'XLMAIN', nil); hWnd := FindWindowEx(hWnd, 0, 'EXCELC', nil); for i := 1 to 9 do begin case i of 4,5,6,7,9:EnableWindow(GetDlgItem(hWnd, i), False); else EnableWindow(GetDlgItem(hWnd, i), True); end; end; end; begin ExcelWorkSheet := xlsWks; TimerID := SetTimer(0, 0, 10, @pEnablePreviewTimer); PreviewThread := ExcelPreviewThread.Create(True); try PreviewThread.Resume; finally PreviewThread.Free; KillTimer(0, TimerID); end; end; //======================================================= //======================================================= //スレッド側 //======================================================= procedure ExcelPreviewThread.Execute; begin Synchronize(PreviewStart); end; procedure ExcelPreviewThread.PreviewStart; begin From1.ExcelWorkSheet.PrintPreview; end; //=======================================================
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.