我需要制作“图形用户界面”,并且需要一些VCL组件来选择文件。
这个组件必须选择文件,但是用户不需要输入文件名。
我正在寻找信息,但是没有什么帮助我。
Vcl.Dialogs.TOpenDialog可以用于此目的。
另请参阅UsingDialogs。
procedure TForm1.Button1Click(Sender: TObject);
var
selectedFile: string;
dlg: TOpenDialog;
begin
selectedFile := '';
dlg := TOpenDialog.Create(nil);
try
dlg.InitialDir := 'C:\';
dlg.Filter := 'All files (*.*)|*.*';
if dlg.Execute(Handle) then
selectedFile := dlg.FileName;
finally
dlg.Free;
end;
if selectedFile <> '' then
<your code here to handle the selected file>
end;
请注意此示例假设在表单上放置了名为 Button1
的 TButton
,并且将 TForm1.Button1Click(Sender: TObject)
过程分配给按钮的 OnClick
事件。
可以通过使用 |
(管道)字符将多个文件扩展名连接在一起来在 TOpenDialog.Filter
属性中使用多个文件扩展名,如下所示:
'AutoCAD drawing|*.dwg|Drawing Exchange Format|*.dxf'
procedure TForm1.SelectFile(Sender: TObject);
begin
openDialog := TOpenDialog.Create(self);
openDialog.InitialDir := 'C:\';
openDialog.Options := [ofFileMustExist];
// Allow only .dpr and .pas files to be selected
openDialog.Filter :=
'All files (*.*)|*.*';
// Display the open file dialog
if openDialog.Execute
then ShowMessage('File : '+openDialog.FileName)
else ShowMessage('Open file was cancelled');
// Free up the dialog
openDialog.Free;
end;