RAD Studio VCL Reference
|
Determines the file masks (filters) available in the dialog.
property Filter: string;
__property AnsiString Filter;
The file-selection dialog includes a drop-down list of file types under the edit box. When the user picks a file type from the list, only files of the selected type are displayed in the dialog.
To configure file masks at design time, click on the ellipsis marks (...) to the right of the Filter property in the Object Inspector. This opens the Filter editor. In the left column of the Filter editor, under Filter Name, type a brief description of each file type that will be available at runtime. In the right column, under Filter, type the file mask corresponding to each description. For example, the description "Text files" might appear to the left of the mask "*.txt", and the description "Pascal source files" might appear to the left of the mask "*.pas". Since the description appears in the drop-down list at runtime, it is often helpful to show the mask explicitly in the description (for example, "Text files (*.txt)").
To create file masks in program code, assign a value to the Filter property that consists of a description and a mask separated by a vertical bar (pipe) character. Do not include spaces around the vertical bar. For example,
OpenDialog1.Filter := 'Text files (*.txt)|*.TXT';
OpenDialog1->Filter = "Text files (*.txt)|*.TXT";
Multiple filters should be separated by vertical bars. For example,
OpenDialog1.Filter := 'Text files (*.txt)|*.TXT|Pascal files (*.pas)|*.PAS';
OpenDialog1->Filter = "Text files (*.txt)|*.TXT|Pascal files (*.pas)|*.PAS";
To include multiple masks in a single filter, separate the masks with semicolons. This works both in the Object Inspector and in program code. For example,
OpenDialog1.Filter := 'Pascal files|*.PAS;*.DPK;*.DPR';
OpenDialog1->Filter = "Pascal files|*.PAS;*.DPK;*.DPR";
If no value is assigned to Filter, the dialog displays all file types.
C++ Examples:
/* This code displays a Save Picture dialog box with the TBitmap default extension that is added automatically to files that are given no extension. Confirm that the bitmap file has been saved under the filename and path specified. */ void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString NewFileName, OldFileName; TFileStream *NewFile, *OldFile; SavePictureDialog1->DefaultExt = GraphicExtension(__classid(Graphics::TBitmap)); SavePictureDialog1->Filter = GraphicFilter(__classid(Graphics::TBitmap)); OldFileName = "factory.bmp"; if (SavePictureDialog1->Execute()) { NewFileName = SavePictureDialog1->FileName; OldFile = new TFileStream(OldFileName, (fmOpenRead | fmShareDenyWrite)); try { NewFile = new TFileStream(NewFileName, (fmCreate | fmShareDenyRead)); try { NewFile->CopyFrom(OldFile, OldFile->Size); } __finally { FreeAndNil(NewFile); }; } __finally { FreeAndNil(OldFile); }; }; } void __fastcall TForm1::FormCreate(TObject *Sender) { Image1->Picture->LoadFromFile("../factory.bmp"); }
/* The following code allows the user to use a dialog box to redefine the icon for the application at run time. When the user clicks Button1, OpenDialog1 executes and the user specifies an icon filename. The Icon is then assigned to the application. At runtime, click Button1 to select the icon, then minimize the application to see the icon. */ void __fastcall TForm1::Button1Click(TObject *Sender) { OpenPictureDialog1->DefaultExt = GraphicExtension(__classid(TIcon)); OpenPictureDialog1->FileName = GraphicFileMask(__classid(TIcon)); OpenPictureDialog1->Filter = GraphicFilter(__classid(TIcon)); OpenPictureDialog1->Options.Clear(); OpenPictureDialog1->Options << ofFileMustExist << ofHideReadOnly << ofNoChangeDir; while (true) { if (OpenPictureDialog1->Execute()) { if (!OpenPictureDialog1->Options.Contains(ofExtensionDifferent)) { Application->Icon->LoadFromFile(OpenPictureDialog1->FileName); break; } else // reset Options to remove ofExtensionDifferent { OpenPictureDialog1->Options.Clear(); OpenPictureDialog1->Options << ofFileMustExist << ofHideReadOnly << ofNoChangeDir; } } else // user cancelled break; } }
Delphi Examples:
{ This code displays a Save Picture dialog box with the TBitmap default extension that is added automatically to files that are given no extension. Confirm that the bitmap file has been saved under the filename and path specified. } procedure TForm1.Button1Click(Sender: TObject); var NewFileName, OldFileName: string; NewFile, OldFile: TFileStream; begin SavePictureDialog1.DefaultExt := GraphicExtension(TBitmap); SavePictureDialog1.Filter := GraphicFilter(TBitmap); OldFileName := 'factory.bmp'; if SavePictureDialog1.Execute then begin NewFileName := SavePictureDialog1.FileName; OldFile := TFileStream.Create( OldFileName, fmOpenRead or fmShareDenyWrite); try NewFile := TFileStream.Create( NewFileName, fmCreate or fmShareDenyRead); try NewFile.CopyFrom(OldFile, OldFile.Size); finally FreeAndNil(NewFile); end; finally FreeAndNil(OldFile); end; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Image1.Picture.LoadFromFile('factory.bmp'); end;
{ The following code allows the user to use a dialog box to redefine the icon for the application at run time. When the user clicks Button1, OpenDialog1 executes and the user specifies an icon filename. The Icon is then assigned to the application. At runtime, click Button1 to select the icon, then minimize the application to see the icon. } procedure TForm1.Button1Click(Sender: TObject); var Done: Boolean; filenamestring : String; begin OpenPictureDialog1.DefaultExt := GraphicExtension(TIcon); filenamestring := GraphicFileMask(TIcon); OpenPictureDialog1.FileName := filenamestring; OpenPictureDialog1.Filter := GraphicFilter(TIcon); OpenPictureDialog1.Options := [ ofFileMustExist, ofHideReadOnly, ofNoChangeDir ]; Done := False; while not Done do begin if OpenPictureDialog1.Execute then begin if not (ofExtensionDifferent in OpenPictureDialog1.Options) then begin Application.Icon.LoadFromFile(OpenPictureDialog1.FileName); Done := True; end else // OpenPictureDialog1.Options := OpenPictureDialog1.Options - ofExtensionDifferent; end else { User cancelled } Done := True; end; end;
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
|
What do you think about this topic? Send feedback!
|