私はTSaveDialogを持つフォームを持っています。 Execute関数を呼び出すと、IDEから実行中にポップアップしません。スタンドアロンで実行している場合、はポップアップを実行します。それを多少試してみると、TSave/TOpenのすべてのダイアログが機能しないことがわかりました。動作していないということは、ExecuteがポップアップなしでFalse
を返すことを意味します(更新されたコード例を参照してください:常に「False」というメッセージがダイアログの前に表示されません)。 他のダイアログ(フォント/色/等)do作品。標準ダイアログボックスがポップアップしません
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute
then ShowMessage ('True')
else ShowMessage ('False');
end;
デバッグなしで実行すると、ダイアログボックスが表示されません。リリース構成とデバッグ構成が選択されているかどうかは関係ありません。
明らかにIDEは奇妙なことをしています。フォームには2つのTSaveDialogコンポーネントがあり、両方とも同じ動作を表示します。
何が悪いと思いますか?
更新1 Windows 7のDelphi XEを使用する他のプロジェクトでは、TSaveDialogsがうまく動作します。
更新2 TSaveDialogについての最初の質問は、すべてのTSave/TOpenダイアログに適用されていました。この知識を含むように質問が編集されました。
更新3私はこれに匹敵するエラーのlinkを見つけました。しかし、私はレジストリをチェックしましたが、上記のように実行可能ファイルが見つかりませんでした。また、TSaveDialogはIDEの外で正常に動作するため、XPとの互換性を変更するヒントはimhoには適用されません。
どのバージョンのDelphiですか? – kobik
savedialogだけで別のアプリケーションを作成すると、IDEは同じように動作しますか? – vickd
おそらく、デバッガ下で実行されるときに伸びるシェル拡張です。私は似たような経験があります。クリーンなWindowsインストールを試してください。 –