source: tags/1.3.0/Forms/UFormImportFormats.pas

Last change on this file was 86, checked in by chronos, 8 years ago
  • Modified: Non-visual code moved from FormMain to Core data module.
File size: 5.0 KB
Line 
1unit UFormImportFormats;
2
3{$mode delphi}
4
5interface
6
7uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
9 ActnList, Menus, UAcronym;
10
11type
12
13 { TFormImportFormats }
14
15 TFormImportFormats = class(TForm)
16 AAdd: TAction;
17 ActionList1: TActionList;
18 AModify: TAction;
19 ARemove: TAction;
20 ListView1: TListView;
21 MenuItem1: TMenuItem;
22 MenuItem2: TMenuItem;
23 MenuItem3: TMenuItem;
24 PopupMenuImportSource: TPopupMenu;
25 ToolBar1: TToolBar;
26 ToolButton1: TToolButton;
27 ToolButton2: TToolButton;
28 ToolButton3: TToolButton;
29 procedure AAddExecute(Sender: TObject);
30 procedure AModifyExecute(Sender: TObject);
31 procedure ARemoveExecute(Sender: TObject);
32 procedure FormCreate(Sender: TObject);
33 procedure FormShow(Sender: TObject);
34 procedure ListView1Data(Sender: TObject; Item: TListItem);
35 procedure ListView1DblClick(Sender: TObject);
36 procedure ListView1KeyPress(Sender: TObject; var Key: char);
37 procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
38 Selected: Boolean);
39 private
40 { private declarations }
41 public
42 ImportFormats: TImportFormats;
43 procedure UpdateList;
44 procedure UpdateInterface;
45 end;
46
47var
48 FormImportFormats: TFormImportFormats;
49
50implementation
51
52{$R *.lfm}
53
54uses
55 UCore, UFormImportFormat;
56
57resourcestring
58 SRemoveImportFormat = 'Remove import formats';
59 SRemoveImportFormatQuery = 'Do you really want to remove selected import formats?';
60 SImportFormatAlreadyExists = 'Import format %s already exists!';
61
62
63{ TFormImportFormats }
64
65procedure TFormImportFormats.ListView1Data(Sender: TObject; Item: TListItem);
66begin
67 if Item.Index < ImportFormats.Count then
68 with TImportFormat(ImportFormats[Item.Index]) do begin
69 Item.Caption := Name;
70 Item.Data := ImportFormats[Item.Index];
71 end;
72end;
73
74procedure TFormImportFormats.ListView1DblClick(Sender: TObject);
75begin
76 AModify.Execute;
77end;
78
79procedure TFormImportFormats.ListView1KeyPress(Sender: TObject; var Key: char);
80begin
81 if Key = #27 then Close;
82end;
83
84procedure TFormImportFormats.ListView1SelectItem(Sender: TObject;
85 Item: TListItem; Selected: Boolean);
86begin
87 UpdateInterface;
88end;
89
90procedure TFormImportFormats.UpdateList;
91begin
92 ListView1.Items.Count := ImportFormats.Count;
93 ListView1.Refresh;
94 UpdateInterface;
95end;
96
97procedure TFormImportFormats.UpdateInterface;
98begin
99 ARemove.Enabled := Assigned(ListView1.Selected);
100 AModify.Enabled := Assigned(ListView1.Selected);
101end;
102
103procedure TFormImportFormats.FormShow(Sender: TObject);
104begin
105 UpdateList;
106end;
107
108procedure TFormImportFormats.AAddExecute(Sender: TObject);
109var
110 NewImportFormat: TImportFormat;
111begin
112 NewImportFormat := TImportFormat.Create;
113 NewImportFormat.Formats := ImportFormats;
114 FormImportFormat.Load(NewImportFormat);
115 if FormImportFormat.ShowModal = mrOk then begin
116 FormImportFormat.Save(NewImportFormat);
117 if not Assigned(ImportFormats.SearchByName(NewImportFormat.Name)) then begin;
118 ImportFormats.Add(NewImportFormat);
119 NewImportFormat := nil;
120 Core.AcronymDb.Modified := True;
121 UpdateList;
122 end else ShowMessage(Format(SImportFormatAlreadyExists, [NewImportFormat.Name]));
123 end;
124 if Assigned(NewImportFormat) then NewImportFormat.Free;
125end;
126
127procedure TFormImportFormats.AModifyExecute(Sender: TObject);
128var
129 NewImportFormat: TImportFormat;
130begin
131 if Assigned(ListView1.Selected) then begin
132 NewImportFormat := TImportFormat.Create;
133 NewImportFormat.Assign(ListView1.Selected.Data);
134 FormImportFormat.Load(NewImportFormat);
135 if FormImportFormat.ShowModal = mrOk then begin
136 FormImportFormat.Save(NewImportFormat);
137 if (NewImportFormat.Name <> TImportFormat(ListView1.Selected.Data).Name) then begin
138 if not Assigned(ImportFormats.SearchByName(NewImportFormat.Name)) then begin;
139 TImportFormat(ListView1.Selected.Data).Assign(NewImportFormat);
140 Core.AcronymDb.Modified := True;
141 UpdateList;
142 end else ShowMessage(Format(SImportFormatAlreadyExists, [NewImportFormat.Name]));
143 end else begin
144 TImportFormat(ListView1.Selected.Data).Assign(NewImportFormat);
145 Core.AcronymDb.Modified := True;
146 UpdateList;
147 end;
148 end;
149 if Assigned(NewImportFormat) then NewImportFormat.Free;
150 end;
151end;
152
153procedure TFormImportFormats.ARemoveExecute(Sender: TObject);
154var
155 I: Integer;
156begin
157 if Assigned(ListView1.Selected) then begin
158 if MessageDlg(SRemoveImportFormat, SRemoveImportFormatQuery,
159 TMsgDlgType.mtConfirmation, [mbCancel, mbOk], 0) = mrOk then begin
160 for I := ListView1.Items.Count - 1 downto 0 do
161 if ListView1.Items[I].Selected then
162 ImportFormats.Remove(ListView1.Items[I].Data);
163 UpdateList;
164 end;
165 end;
166end;
167
168procedure TFormImportFormats.FormCreate(Sender: TObject);
169var
170 I: Integer;
171begin
172 for I := 0 to ToolBar1.ButtonCount - 1 do
173 ToolBar1.Buttons[I].Hint := ToolBar1.Buttons[I].Caption;
174end;
175
176end.
177
Note: See TracBrowser for help on using the repository browser.