Mega Code Archive

 
Categories / Delphi / System
 

Changing standard Windows dialogs

Title: Changing standard Windows dialogs Question: How to change text like "File name:", "File Type" and buttons' text in standard Windows dialogs? Answer: Some times we need to replace some text or something other in standard Windows Open/Save dialogs. Unfortunately, Delphi's dialogs components don't provide the access to all controls placed on Windows common dialogs. But we can perform this using Windows API. Example below demonstrates the changing all embedded text controls in Open dialog. First, we need to determine identifiers of dialog's controls, they are following: const // LB_FOLDERS_ID = 65535; LB_FILETYPES_ID = 1089; // "File types:" label LB_FILENAME_ID = 1090; // "File name:" label LB_DRIVES_ID = 1091; // "Look in:" label Second, we need to send message to dialog window for changing necessary controls, something like following: procedure TForm1.OpenDialog1Show(Sender: TObject); const // LB_FOLDERS_ID = 65535; LB_FILETYPES_ID = 1089; LB_FILENAME_ID = 1090; LB_DRIVES_ID = 1091; Str1 = 'Four'; Str2 = 'Five'; Str3 = 'One'; Str4 = 'Two'; Str5 = 'Three'; begin SendMessage( GetParent(OpenDialog1.Handle), CDM_SETCONTROLTEXT, IDOK,LongInt(Pchar(Str1))); SendMessage( GetParent(OpenDialog1.Handle), CDM_SETCONTROLTEXT, IDCANCEL, LongInt(Pchar(Str2))); SendMessage( GetParent(OpenDialog1.Handle), CDM_SETCONTROLTEXT, LB_FILETYPES_ID, LongInt(Pchar(Str3))); SendMessage( GetParent(OpenDialog1.Handle), CDM_SETCONTROLTEXT, LB_FILENAME_ID, LongInt(Pchar(Str4))); SendMessage( GetParent(OpenDialog1.Handle), CDM_SETCONTROLTEXT, LB_DRIVES_ID, LongInt(Pchar(Str5))); end;