Dialogs - personalizando as caixas de abrir arquivo e impressao |
Top Previous Next |
|
// personalizando as caixas de abrir arquivo e impressao
{ Sometimes 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. The Example below demonstrates the changing all embedded text controls in Open dialog. }
uses commdlg;
{...}
procedure TForm1.OpenDialog1Show(Sender: TObject); {First, we need to determine identifiers of dialog's controls, they are following:} const LB_FILETYPES_ID = 1089; // "File types:" label LB_FILENAME_ID = 1090; // "File name:" label LB_DRIVES_ID = 1091; // "Look in:" label
Str1 = 'Four'; Str2 = 'Five'; Str3 = 'One'; Str4 = 'Two'; Str5 = 'Three'; var hOpenDialog: HWND; begin hOpenDialog := GetParent(OpenDialog1.Handle); SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, idOk, Longint(PChar(Str1))); SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, idCancel, Longint(PChar(Str2))); SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_FILETYPES_ID, Longint(PChar(Str3))); SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_FILENAME_ID, Longint(PChar(Str4))); SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_DRIVES_ID, Longint(PChar(Str5))); end;
procedure TForm1.Button5Click(Sender: TObject); begin if OpenDialog1.Execute then begin // ... end; end;
// for the Print - Dialog:
procedure TForm1.PrintDialog1Show(Sender: TObject); begin SetWindowText(GetDlgItem(PrintDialog1.Handle, idOk), '&&OK2'); SetWindowText(GetDlgItem(PrintDialog1.Handle, idCancel), '&Cancel2'); SetWindowText(GetDlgItem(PrintDialog1.Handle, 1025), '&Properties2'); end;
procedure TForm1.Button1Click(Sender: TObject); begin if PrintDialog1.Execute then begin // ... end; end; |