TApplication::EnumAllWindowsOnActivateHint
C++Builder 2009 まで、実際の C++ アクセス可能なプロパティとして導入されませんでした。C++Builder 2007 では、代わりにクラス ヘルパーのプロパティとして実装されました。
TApplicationHelper = class helper for TApplication
private
procedure SetEnumAllWindowsOnActivateHint(Flag: Boolean);
function GetEnumAllWindowsOnActivateHint: Boolean;
...
public
property EnumAllWindowsOnActivateHint: Boolean read GetEnumAllWindowsOnActivateHint write SetEnumAllWindowsOnActivateHint;
...
end;
クラス ヘルパーは、C++ ではアクセスできない Delphi 固有の機能です。そのため、回避策を使用する必要があります。プロパティにアクセスする C スタイルの関数を公開する別の .pas ファイルを作成し、 EnumAllWindowsOnActivateHint
その .pas ファイルを C++ プロジェクトに追加します。
AppHelperAccess.pas:
unit AppHelperAccess;
interface
function Application_GetEnumAllWindowsOnActivateHint: Boolean;
procedure Application_SetEnumAllWindowsOnActivateHint(Flag: Boolean);
implementation
uses
Forms;
function Application_GetEnumAllWindowsOnActivateHint: Boolean;
begin
Result := Application.EnumAllWindowsOnActivateHint;
end;
procedure Application_SetEnumAllWindowsOnActivateHint(Flag: Boolean);
begin
Application.EnumAllWindowsOnActivateHint := Flag;
end;
end.
コンパイルされると、C++ コードが関数を呼び出すために使用できる C++ .hpp ヘッダー ファイルが生成されます。例えば
#include "AppHelperAccess.hpp"
void EnableEnumAllWindowsOnActivateHint()
{
Application_SetEnumAllWindowsOnActivateHint(true);
}
void DisableEnumAllWindowsOnActivateHint()
{
Application_SetEnumAllWindowsOnActivateHint(false);
}
void ToggleEnumAllWindowsOnActivateHint()
{
bool flag = Application_GetEnumAllWindowsOnActivateHint();
Application_SetEnumAllWindowsOnActivateHint(!flag);
}