사용자가 저장 파일 이름을 선택하지만 저장이 즉시 수행되지 않는 TSavetextfiledialog가 있습니다. 따라서 저장 버튼이 "저장"보다는 "선택"을 표시하도록하고 싶습니다. 단추의 캡션을 변경할 수 있습니까? 이 오래된 스타일의 일반적인 파일 열기 대화 상자이기 때문에Delphi에서 TSavetextFiledialog의 저장 단추에 캡션을 변경할 수 있습니까?
답변
, 당신은 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;
대화 버튼의 텍스트를 변경하고, 선택이 폴더가 아닌 경우, 사용자 정의 캡션이 복원됩니다.
'OnSelectionChange'도 실행될 때 실행해야한다고 생각합니다. –
@David - 폴더가 다시 선택되지 않으면 사용자 정의 캡션이 자동으로 복원됩니다. 그러나 '열기'를 사용자 정의해야하는 경우에도 맞습니다. –
FTR, OnSelectionChange를 호출해도 단추 텍스트가 이미 변경 되었기 때문에 단추 텍스트가 '열기'되지 않습니다. –
기존의 XP 대화 상자입니다. 나는 그것을 사용하지 않을 것이다. 그러나 XP 대화 상자에서 컨트롤을 열거하기는 쉽습니다. 안내서의 인코딩 드롭 다운을 추가하는 소스 코드를 살펴보십시오. –
@David : 그것에 대해 XP가 뭐니? XE3의 표준 대화 상자입니다. 제목 표시 줄은 XP로 보일 수 있지만 이는 Win7 시스템의 성능 설정입니다. –
@David : 컨트롤을 어떻게 열거합니까? –