2012-04-01 4 views
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는 이상한 일을합니다. 양식에 TSaveDialog 구성 요소가 두 개 있고 모두 동일한 동작을 표시합니다.

어떤 아이디어가 잘못 되었나요?

업데이트 1 Windows 7의 Delphi XE를 사용하십시오. TSaveDialogs를 사용하는 다른 프로젝트에서도 정상적으로 작동합니다.

업데이트 2 TSaveDialog에 대한 원래 질문이 모든 TSave/TOpen 대화 상자에 적용되었음을 알았습니다. 이 지식을 포함하도록 질문이 편집되었습니다.

업데이트 3이 오류는 link과 비슷한 오류입니다. 그러나 레지스트리를 검사했지만 언급 된대로 실행 파일을 찾을 수 없습니다. TSaveDialog가 IDE 외부에서 잘 작동하기 때문에 XP와의 호환성을 변경하는 팁은 imho를 적용하지 않습니다.

+0

어떤 버전의 델파이입니까? – kobik

+0

savedialog만으로 다른 앱을 만들면 IDE도 똑같이 동작하나요? – vickd

+1

아마도 디버거에서 실행할 때 gag하는 셸 확장입니다. 나는 비슷한 경험을했습니다. 깨끗한 Windows 설치를 시도하십시오. –

답변

6

XE2를 사용하는 경우 프로젝트 옵션 환경 블록의 "사용자 재정의"항목이 없는지 확인해야합니다. "시스템 변수 포함"이 작동하지 않고 EXE가 시작된 상태로 환경 변수에있는 사용자 재정의 환경 변수 만 있지만 열기/저장 대화 상자에는 "SystemDrive"및 " SystemRoot ".

또는 "시스템 변수 포함"옵션을 수정하는 IDE Fix Pack을 설치할 수 있습니다.

+0

Delphi XE를 사용하여 언급 했어야 할 질문이 업데이트되었습니다. IDE 픽스 팩이이 상황에 적용되지 않는다고 추측합니까? – Arnold

+0

그렇지 않습니다. XE에서는 "시스템 변수 포함"이 작동합니다. –

+1

어쨌든, 귀하의 웹 사이트는 흥미로운 독서를 만듭니다. 나는 델파이가 그런 시한 폭탄 이었다는 것을 몰랐다 :-). IDE 픽스 팩을 설치하여 Delphi 환경이 개선되는지 확인하십시오. 그것을 가르쳐 주셔서 고마워요! – Arnold

관련 문제