> 少しは考えてみます.期待はしないでくださいませ.
こんな感じでできるようです.
原理は,Acrobatの文書にフォーカス移動していると,SetFocusしても
SetActiveWindowを実行しても機能しないので,キー操作の[TAB]をコードで
実行するという方法です.
動作確認は,Windows XP(SP3) + Delphi 7 Pro + Acrobat Reader9.4.5
procedure TForm1.Button1Click(Sender: TObject);
begin
//フォーカスコントロール
//Button1クリックでButton1にフォーカス(ActiveControl)が移動して
//いるので,ここで再設定
//FocusControl(Memo1);でも可
ActiveControl := Memo1;
with OpenDialog1 do begin
DefaultExt:='PDF';
Filter:='Acrobat PDFファイル|*.PDF';
Options:=[ofReadOnly];
if Execute then begin
Update;
AcroPDF1.LoadFile(FileName);
AcroPDF1.setShowToolbar(False);
//LoadFileで文書を読み込むとAcrobatにフォーカス移動する
//[TAB]キーで,Acrobat文書からフォーカス移動しておかないと機能しない
keybd_event( VK_TAB, 0, 0 , 0 );
keybd_event( VK_TAB, 0, KEYEVENTF_KEYUP , 0 );
//ここでMemo1.SetFocusのように設定してもよい
end;
end;
end;
ところで,[720]のサンプル,リサイズしても,文章の表示サイズが
変更されない場合があります.文書をクリックすると変化します.
Refreshメソッドを実行しても変化しません.
何か方法をご存知でしたら教えてください.
|