3

Delphi アプリから Outlook に通信するために、Delphi で OLE を使用しています。

次のコードを使用して、Outlook で新しい電子メール フォームを開いています。問題は、フォームがバックグラウンドにあることです。そのため、電子メール フォームを生成しているフォームを最大化すると、Outlook の新しいメール フォームが「隠れて」しまいます。

そのフォームを一番上に表示するにはどうすればよいですか? (「上にくっつく」のではなく、単に上に表示され、ユーザーは必要に応じてそれを模倣できます)。

これはコードです:

try
    OutlookApp := GetActiveOleObject('Outlook.Application');
  except
    OutlookApp := CreateOleObject('Outlook.Application');
  end;
  try
    MailItem := OutlookApp.CreateItem(olMailItem);
    MailItem.To := 'Test@mail.com';     
    MailItem.Subject := 'This is the subject';
    MailItem.HTMLBody    := '<HTML>Test</HTML>';
    MailItem.Display;
  finally
    OutlookApp    := VarNull;
  end;
end;
4

3 に答える 3

4

呼び出しをもう 1 つ追加するだけです。

MailItem.Display;
OutlookApp.ActiveWindow.Activate;

アクティブ化すると、Outlook が前面に表示されます。

于 2013-12-17T14:52:20.717 に答える
2

には、ウィンドウをモーダルにするMailItem.DisplayオプションのパラメーターModalがあるため、次を使用してみてください。

MailItem.Display(True);
于 2012-04-02T08:13:40.133 に答える