OSDN Git Service

TEditor、TTaskTrayの配布先変更に追従
[winbottle/winbottle.git] / bottleclient / OpenFileEditor.pas
1 unit OpenFileEditor;
2
3 interface
4
5 uses
6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7   Dialogs, StdCtrls;
8
9 type
10   TfrmOpenFileEditor = class(TForm)
11     OpenDialog: TOpenDialog;
12     edtFile: TEdit;
13     btnBrowse: TButton;
14     btnCancel: TButton;
15     btnOk: TButton;
16     lblCaption: TLabel;
17     SaveDialog: TSaveDialog;
18     procedure btnBrowseClick(Sender: TObject);
19   private
20     FOpenType: boolean; // behavior of the dialog (to open or to save)
21     { Private \90é\8c¾ }
22   public
23     { Public \90é\8c¾ }
24   end;
25
26 var
27   frmOpenFileEditor: TfrmOpenFileEditor;
28
29 function OpenFileEdit(var FileName: String;  Filter, ACaption: String;
30   Options: TOpenOptions): boolean;
31
32 function SaveFileEdit(var FileName: String;  Filter, ACaption: String;
33   Options: TOpenOptions): boolean;
34
35
36 implementation
37
38 {$R *.dfm}
39
40 function ExecuteFileDialog(var FileName: String;  Filter, ACaption: String;
41   Options: TOpenOptions; IsOpenType: boolean = true): boolean;
42 var AForm: TfrmOpenFileEditor;
43 begin
44   Application.CreateForm(TfrmOpenFileEditor, AForm);
45   try
46     with AForm do begin
47       FOpenType := IsOpenType;
48       lblCaption.Caption := ACaption;
49       OpenDialog.Options := Options;
50       SaveDialog.Options := Options;
51       OpenDialog.Filter := Filter;
52       SaveDialog.Filter := Filter;
53       edtFile.Text := FileName;
54       Result := ShowModal = mrOk;
55       if Result then FileName := edtFile.Text;
56     end;
57   finally
58     AForm.Release;
59   end;
60 end;
61
62 function OpenFileEdit(var FileName: String;  Filter, ACaption: String;
63   Options: TOpenOptions): boolean;
64 begin
65   Result := ExecuteFileDialog(FileName, Filter, ACaption, Options, true);
66 end;
67
68 function SaveFileEdit(var FileName: String;  Filter, ACaption: String;
69   Options: TOpenOptions): boolean;
70 begin
71   Result := ExecuteFileDialog(FileName, Filter, ACaption, Options, false);
72 end;
73
74
75 procedure TfrmOpenFileEditor.btnBrowseClick(Sender: TObject);
76 begin
77   // Check FOpenType flag
78   if FOpenType then
79   begin
80     if FileExists(edtFile.Text) then
81       OpenDialog.FileName := edtFile.Text;
82     if OpenDialog.Execute then
83       edtFile.Text := OpenDialog.FileName;
84   end else
85   begin
86     if FileExists(edtFile.Text) then
87       SaveDialog.FileName := edtFile.Text;
88     if SaveDialog.Execute then
89       edtFile.Text := SaveDialog.FileName;
90   end;
91 end;
92
93 end.