2014-07-19 6 views
1

사용자가 저장 파일 이름을 선택하지만 저장이 즉시 수행되지 않는 TSavetextfiledialog가 있습니다. 따라서 저장 버튼이 "저장"보다는 "선택"을 표시하도록하고 싶습니다. 단추의 캡션을 변경할 수 있습니까? 이 오래된 스타일의 일반적인 파일 열기 대화 상자이기 때문에Delphi에서 TSavetextFiledialog의 저장 단추에 캡션을 변경할 수 있습니까?

enter image description here

+0

기존의 XP 대화 상자입니다. 나는 그것을 사용하지 않을 것이다. 그러나 XP 대화 상자에서 컨트롤을 열거하기는 쉽습니다. 안내서의 인코딩 드롭 다운을 추가하는 소스 코드를 살펴보십시오. –

+0

@David : 그것에 대해 XP가 뭐니? XE3의 표준 대화 상자입니다. 제목 표시 줄은 XP로 보일 수 있지만 이는 Win7 시스템의 성능 설정입니다. –

+0

@David : 컨트롤을 어떻게 열거합니까? –

답변

2

, 당신은 VCL의 대화 핸들의 부모에 대한 IDOK 식별자를 갖는 항목에 CDM_SETCONTROLTEXT 메시지를 사용할 수 있습니다. 다른 항목의 ID는 Explorer-Style Control Identifiers의 설명서를 참조하십시오. 여기에 OnShow 이벤트 핸들러에서 호출됩니다 : 당신이 '열기'에 폴더를 선택하면

uses 
    commdlg; 

procedure TForm2.SaveTextFileDialog1Show(Sender: TObject); 
begin 
    SendMessage(GetParent(SaveTextFileDialog1.Handle), 
     CDM_SETCONTROLTEXT, IDOK, NativeUInt(PChar('MyCaption'))); 
end; 

대화 버튼의 텍스트를 변경하고, 선택이 폴더가 아닌 경우, 사용자 정의 캡션이 복원됩니다.

+0

'OnSelectionChange'도 실행될 때 실행해야한다고 생각합니다. –

+0

@David - 폴더가 다시 선택되지 않으면 사용자 정의 캡션이 자동으로 복원됩니다. 그러나 '열기'를 사용자 정의해야하는 경우에도 맞습니다. –

+0

FTR, OnSelectionChange를 호출해도 단추 텍스트가 이미 변경 되었기 때문에 단추 텍스트가 '열기'되지 않습니다. –