2

TSaveDialog を含むフォームがあります。Execute 関数を呼び出しても、IDE から実行するとポップアップしません。スタンドアロンで実行するとポップアップしますもう少しテストしたところ、すべての TSave/TOpen ダイアログが機能しないことがわかりました。動作していないということは、ポップアップなしで Execute が返されることを意味しますFalse(更新されたコード例を参照してください: ダイアログが先行することなく、常にメッセージ 'False' がポップアップします)。他のダイアログ(フォント/色など)動作します。

procedure TForm1.Button1Click(Sender: TObject);
begin
   if OpenPictureDialog1.Execute
      then ShowMessage ('True')
      else ShowMessage ('False');
end;

デバッグなしで実行すると、ダイアログはどちらも表示されません。また、リリースまたはデバッグ構成が選択されているかどうかも問題ではありません。

どうやら IDE は奇妙なことをします。フォームには 2 つの TSaveDialog コンポーネントがあり、どちらも同じ動作を示します。

何が間違っているのですか?

Windows 7 で Delphi XE を使用するUpdate 1。TSaveDialogs を使用する他のプロジェクトは正常に動作します。

更新 2 TSaveDialog に関する元の質問がすべての TSave/TOpen ダイアログに適用されることがわかりました。この知識を含めるように質問が編集されました。

更新 3同様のエラーのこのリンクを見つけました。ただし、レジストリを確認しましたが、前述の実行可能ファイルが見つかりませんでした。TSaveDialog は IDE の外部で正常に動作するため、互換性を XP に変更するためのヒントは適用されません。

4

1 に答える 1

6

XE2 を使用している場合は、プロジェクト オプション環境ブロックの「ユーザー オーバーライド」にエントリがないことを確認する必要があります。「システム変数を含める」は機能せず、それがないと、ユーザーがオーバーライドした環境変数のみが環境ブロックにあり、EXE が開始されますが、開く/保存ダイアログには「SystemDrive」や「システムルート」。

または、「Include System Variables」オプションを修正するIDE Fix Packをインストールすることもできます。

于 2012-04-01T12:50:39.253 に答える