Changeset 429

User picture

Author: nrymanov@gmail.com

(2010/01/31 08:05) About 2 years ago

see #29 - Редизайн и унификация пользовательского интерфейса

Affected files

Updated trunk/Forms/frm_edit_book_info.pas Download diff

428429
8
  *               Nick Rymanov    nrymanov@gmail.com
8
  *               Nick Rymanov    nrymanov@gmail.com
9
  ****************************************************************************** *)
9
  ****************************************************************************** *)
10
10
11
{
12
Note:         .      .
13
}
14
11
unit frm_edit_book_info;
15
unit frm_edit_book_info;
12
16
13
interface
17
interface
...
...
42
    Label7: TLabel;
46
    Label7: TLabel;
43
    gbAuthors: TGroupBox;
47
    gbAuthors: TGroupBox;
44
    gbExtraInfo: TGroupBox;
48
    gbExtraInfo: TGroupBox;
49
    procedure FormShow(Sender: TObject);
50
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
45
    procedure btnGenresClick(Sender: TObject);
51
    procedure btnGenresClick(Sender: TObject);
46
    procedure FormShow(Sender: TObject);
47
    procedure btnAddAuthorClick(Sender: TObject);
52
    procedure btnAddAuthorClick(Sender: TObject);
48
    procedure btnAChangeClick(Sender: TObject);
53
    procedure btnAChangeClick(Sender: TObject);
49
    procedure btnADeleteClick(Sender: TObject);
54
    procedure btnADeleteClick(Sender: TObject);
55
    procedure edTChange(Sender: TObject);
50
    procedure btnSaveClick(Sender: TObject);
56
    procedure btnSaveClick(Sender: TObject);
51
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
52
    procedure btnNextBookClick(Sender: TObject);
57
    procedure btnNextBookClick(Sender: TObject);
53
    procedure edTChange(Sender: TObject);
54
    procedure btnPrevBookClick(Sender: TObject);
58
    procedure btnPrevBookClick(Sender: TObject);
55
  private
59
  private
56
    FChanged: boolean;
60
    FChanged: boolean;
57
61
58
    procedure FillLists;
62
    procedure FillLists;
59
    function SaveData: boolean;
63
    function SaveData: boolean;
60
    { Private declarations }
61
  public
64
  public
62
    // procedure FillGenrelist;
65
63
  end;
66
  end;
64
67
65
var
68
var
...
...
78
81
79
{$R *.dfm}
82
{$R *.dfm}
80
83
84
procedure TfrmEditBookInfo.FormShow(Sender: TObject);
85
begin
86
  FChanged := False;
87
  if frmGenreTree.tvGenresTree.GetFirstSelected = nil then
88
    frmMain.FillGenresTree(frmGenreTree.tvGenresTree);
89
  FillLists;
90
end;
91
92
procedure TfrmEditBookInfo.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
93
var
94
  Dummy: boolean;
95
begin
96
  if Key = VK_F1 then
97
    frmMain.HH(0, 0, Dummy);
98
end;
99
81
procedure TfrmEditBookInfo.btnGenresClick(Sender: TObject);
100
procedure TfrmEditBookInfo.btnGenresClick(Sender: TObject);
82
var
101
var
83
  Data: PGenreData;
102
  Data: PGenreData;
...
...
87
  begin
106
  begin
88
    lblGenre.Text := '';
107
    lblGenre.Text := '';
89
    Node := frmGenreTree.tvGenresTree.GetFirstSelected;
108
    Node := frmGenreTree.tvGenresTree.GetFirstSelected;
90
    while Node <> nil do
109
    while Assigned(Node) do
91
    begin
110
    begin
92
      Data := frmGenreTree.tvGenresTree.GetNodeData(Node);
111
      Data := frmGenreTree.tvGenresTree.GetNodeData(Node);
93
      lblGenre.Text := lblGenre.Text + Data.Text + ' ; ';
112
      lblGenre.Text := lblGenre.Text + Data.Text + ' ; ';
...
...
97
  end;
116
  end;
98
end;
117
end;
99
118
100
procedure TfrmEditBookInfo.FillLists;
119
procedure TfrmEditBookInfo.btnAddAuthorClick(Sender: TObject);
120
var
121
  Family: TListItem;
122
  frmEditAuthor: TfrmEditAuthorData;
101
begin
123
begin
102
  cbSeries.Items.Clear;
124
  frmEditAuthor := TfrmEditAuthorData.Create(Self);
103
  dmCollection.tblSeries.First;
125
  try
104
  dmCollection.tblSeries.Next;
126
    if frmEditAuthor.ShowModal = mrOk then
105
  while not dmCollection.tblSeries.Eof do
127
    begin
106
  begin
128
      Family := lvAuthors.Items.Add;
107
    cbSeries.Items.Add(dmCollection.tblSeries['S_Title']);
129
      Family.Caption := frmEditAuthor.edFamily.Text;
108
    dmCollection.tblSeries.Next;
130
      Family.SubItems.Add(frmEditAuthor.edName.Text);
131
      Family.SubItems.Add(frmEditAuthor.edMiddle.Text);
132
133
      FChanged := True;
134
    end;
135
  finally
136
    frmEditAuthor.Free;
109
  end;
137
  end;
110
end;
138
end;
111
139
112
procedure TfrmEditBookInfo.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
140
procedure TfrmEditBookInfo.btnAChangeClick(Sender: TObject);
113
var
141
var
114
  Dummy: boolean;
142
  Family: TListItem;
143
  frmEditAuthor: TfrmEditAuthorData;
115
begin
144
begin
116
  if Key = VK_F1 then
145
  Family := lvAuthors.Selected;
117
    frmMain.HH(0, 0, Dummy);
146
  if not Assigned(Family) then
118
end;
147
    Exit;
119
148
120
procedure TfrmEditBookInfo.FormShow(Sender: TObject);
149
  frmEditAuthor := TfrmEditAuthorData.Create(Self);
121
begin
150
  try
122
  FChanged := False;
151
    frmEditAuthor.edFamily.Text := Family.Caption;
123
  if frmGenreTree.tvGenresTree.GetFirstSelected = nil then
152
    frmEditAuthor.edName.Text := Family.SubItems[0];
124
    frmMain.FillGenresTree(frmGenreTree.tvGenresTree);
153
    frmEditAuthor.edMiddle.Text := Family.SubItems[1];
125
  FillLists;
126
end;
127
154
128
function TfrmEditBookInfo.SaveData: boolean;
155
    if frmEditAuthor.ShowModal = mrOk then
129
begin
156
    begin
130
  Result := False;
157
      Family.Caption := frmEditAuthor.edFamily.Text;
131
  if not FChanged then
158
      Family.SubItems[0] := frmEditAuthor.edName.Text;
132
  begin
159
      Family.SubItems[1] := frmEditAuthor.edMiddle.Text;
133
    Result := True;
134
    Exit;
135
  end;
136
160
137
  if lvAuthors.Items.Count = 0 then
161
      FChanged := True;
138
  begin
162
    end;
139
    MessageDlg('   !', mtError, [mbOk], 0);
163
  finally
140
    Exit;
164
    frmEditAuthor.Free;
141
  end;
165
  end;
142
  if edT.Text = '' then
143
  begin
144
    MessageDlg('  !', mtError, [mbOk], 0);
145
    Exit;
146
  end;
147
  Result := True;
148
end;
166
end;
149
167
150
procedure TfrmEditBookInfo.btnADeleteClick(Sender: TObject);
168
procedure TfrmEditBookInfo.btnADeleteClick(Sender: TObject);
...
...
152
  lvAuthors.DeleteSelected;
170
  lvAuthors.DeleteSelected;
153
end;
171
end;
154
172
155
procedure TfrmEditBookInfo.btnAddAuthorClick(Sender: TObject);
173
procedure TfrmEditBookInfo.edTChange(Sender: TObject);
156
var
157
  Family: TListItem;
158
begin
174
begin
159
  frmEditAuthorData.edFamily.Clear;
175
  FChanged := True;
160
  frmEditAuthorData.edName.Clear;
161
  frmEditAuthorData.edMiddle.Clear;
162
  if frmEditAuthorData.ShowModal = mrOk then
163
  begin
164
    Family := lvAuthors.Items.Add;
165
    Family.Caption := frmEditAuthorData.edFamily.Text;
166
    Family.SubItems.Add(frmEditAuthorData.edName.Text);
167
    Family.SubItems.Add(frmEditAuthorData.edMiddle.Text);
168
    FChanged := True;
169
  end;
170
end;
176
end;
171
177
172
procedure TfrmEditBookInfo.btnAChangeClick(Sender: TObject);
173
var
174
  Family: TListItem;
175
begin
176
  Family := lvAuthors.Selected;
177
  if Family = nil then
178
    Exit;
179
180
  frmEditAuthorData.edFamily.Text := Family.Caption;
181
  if Family.SubItems.Count > 0 then
182
    frmEditAuthorData.edName.Text := Family.SubItems[0];
183
  if Family.SubItems.Count > 1 then
184
    frmEditAuthorData.edMiddle.Text := Family.SubItems[1];
185
186
  if frmEditAuthorData.ShowModal = mrOk then
187
  begin
188
    Family.Caption := frmEditAuthorData.edFamily.Text;
189
    if Family.SubItems.Count > 0 then
190
      Family.SubItems[0] := frmEditAuthorData.edName.Text
191
    else
192
      Family.SubItems.Add(frmEditAuthorData.edName.Text);
193
    if Family.SubItems.Count > 1 then
194
      Family.SubItems[1] := frmEditAuthorData.edMiddle.Text
195
    else
196
      Family.SubItems.Add(frmEditAuthorData.edMiddle.Text);
197
    FChanged := True;
198
  end;
199
end;
200
201
procedure TfrmEditBookInfo.btnSaveClick(Sender: TObject);
178
procedure TfrmEditBookInfo.btnSaveClick(Sender: TObject);
202
begin
179
begin
203
  if SaveData then
180
  if SaveData then
...
...
222
  end;
199
  end;
223
end;
200
end;
224
201
225
procedure TfrmEditBookInfo.edTChange(Sender: TObject);
202
procedure TfrmEditBookInfo.FillLists;
226
begin
203
begin
227
  FChanged := True;
204
  cbSeries.Items.Clear;
205
  dmCollection.tblSeries.First;
206
  dmCollection.tblSeries.Next;
207
  while not dmCollection.tblSeries.Eof do
208
  begin
209
    cbSeries.Items.Add(dmCollection.tblSeries['S_Title']);
210
    dmCollection.tblSeries.Next;
211
  end;
228
end;
212
end;
229
213
214
function TfrmEditBookInfo.SaveData: boolean;
215
begin
216
  Result := False;
217
218
  if not FChanged then
219
  begin
220
    Result := True;
221
    Exit;
222
  end;
223
224
  if lvAuthors.Items.Count = 0 then
225
  begin
226
    MessageDlg('   !', mtError, [mbOk], 0);
227
    Exit;
228
  end;
229
230
  if edT.Text = '' then
231
  begin
232
    MessageDlg('  !', mtError, [mbOk], 0);
233
    Exit;
234
  end;
235
236
  Result := True;
237
end;
238
230
end.
239
end.