Subversion Repositories decoder

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 daniel-mar 1
unit Elemente;
2
 
3
interface
4
 
5
uses
6
  Windows, SysUtils, Forms, Controls, Classes, StdCtrls, ExtCtrls, DragDropFile,
7
  DragDrop, Menus, IniFiles, DCConst;
8
 
9
type
10
  TElementeForm = class(TForm)
11
    file_box: TListBox;
12
    bottom_panel: TPanel;
13
    btn_close: TButton;
14
    btn_remove: TButton;
15
    popup: TPopupMenu;
16
    add_file: TMenuItem;
17
    add_folder: TMenuItem;
18
    seperator: TMenuItem;
19
    remove: TMenuItem;
20
    tmr_refresh: TTimer;
21
    procedure form_show(Sender: TObject);
22
    procedure btn_remove_click(Sender: TObject);
23
    procedure btn_close_click(Sender: TObject);
24
    procedure form_create(Sender: TObject);
25
    procedure dropfile_drop(Sender: TObject; ShiftState: TShiftState;
26
  Point: TPoint; var Effect: Integer);
27
    procedure form_destroy(Sender: TObject);
28
    procedure add_folder_click(Sender: TObject);
29
    procedure add_file_click(Sender: TObject);
30
    procedure form_resize(Sender: TObject);
31
    procedure tmr_refreshTimer(Sender: TObject);
32
  private
33
    LangArray: array of TLanguageEntry;
34
    function GetLangEntry(name: string): string;
35
  public
36
    DropFile: TDropFileTarget;
37
  end;
38
 
39
var
40
  ElementeForm: TElementeForm;
41
 
42
implementation
43
 
44
uses Main;
45
 
46
{$R *.dfm}
47
 
48
function TElementeForm.GetLangEntry(name: string): string;
49
var
50
  i: integer;
51
begin
52
  for i := 0 to high(LangArray) do
53
  begin
54
    if LangArray[i].name = name then
55
    begin
56
      result := LangArray[i].text;
57
      break;
58
    end;
59
  end;
60
end;
61
 
62
procedure TElementeForm.tmr_refreshTimer(Sender: TObject);
63
begin
64
  tmr_refresh.Enabled := false;
65
 
66
  file_box.Repaint;
67
end;
68
 
69
procedure TElementeForm.btn_close_click(Sender: TObject);
70
begin
71
  close;
72
end;
73
 
74
procedure TElementeForm.btn_remove_click(Sender: TObject);
75
var
76
  i: integer;
77
begin
78
  try
79
    mainform.KaZip.close;
80
  except
81
 
82
  end;
83
 
84
  mainform.KaZip.Open(mainform.fileopen);
85
  try
86
    for i := 0 to file_box.Items.Count - 1 do
87
    begin
88
      if file_box.Selected[i] then
89
        mainform.KaZip.Remove(file_box.Items.Strings[i]);
90
    end;
91
 
92
    // form_show(self);
93
    file_box.Clear;
94
    for i := 0 to mainform.KaZip.FileNames.Count - 1 do
95
      file_box.Items.Add(mainform.KaZip.FileNames.Strings[i]);
96
 
97
    mainform.edt_vle4.Text := mainform.BestimmeDateiGroesse(mainform.fileopen);
98
  finally
99
    mainform.KaZip.close;
100
  end;
101
end;
102
 
103
procedure TElementeForm.add_file_click(Sender: TObject);
104
begin
105
  mainform.m_dateiensammlung_add_file.Click;
106
  form_show(self);
107
end;
108
 
109
procedure TElementeForm.form_create(Sender: TObject);
110
var
111
  ini: TIniFile;
112
  str: TStringList;
113
  i: integer;
114
begin
115
  // Sprachdatei auslesen
116
 
117
  ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Language.ini');
118
  str := TStringList.Create();
119
  try
120
    ini.ReadSection(Name, str);
121
    for i := 0 to str.count-1 do
122
    begin
123
      setlength(LangArray, length(LangArray)+1);
124
      LangArray[length(LangArray)-1].name := str.strings[i];
125
      LangArray[length(LangArray)-1].text := ini.ReadString(name, str.strings[i], '?');
126
      LangArray[length(LangArray)-1].text := StringReplace(LangArray[length(LangArray)-1].text, '###', #13#10, [rfReplaceAll]);
127
    end;
128
  finally
129
    ini.free;
130
    str.Free;
131
  end;
132
 
133
  // Form vorbereiten
134
 
135
  DropFile := TDropFileTarget.Create(self);
136
  DropFile.Dragtypes := [dtCopy];
137
  DropFile.OnDrop := dropfile_drop;
138
 
139
  DropFile.Register(elementeform);
140
 
141
  popup.Images := mainform.imagelist;
142
 
143
  btn_close.caption := GetLangEntry('close');
144
  btn_remove.caption := GetLangEntry('remove');
145
  caption := GetLangEntry('caption');
146
 
147
  add_file.Caption := GetLangEntry('add_file');
148
  add_folder.Caption := GetLangEntry('add_folder');
149
  remove.Caption := GetLangEntry('remove');
150
end;
151
 
152
procedure TElementeForm.dropfile_drop(Sender: TObject; ShiftState: TShiftState;
153
  Point: TPoint; var Effect: Integer);
154
var
155
  i: integer;
156
begin
157
  effect := DROPEFFECT_NONE; // damit stürzt Windows 95 nicht ab
158
 
159
  mainform.steuerelementesperren(true);
160
  mainform.zeige_wartenform(true);
161
  try
162
 
163
  for i := 0 to DropFile.Files.Count - 1 do
164
  begin
165
    mainform.addtozip(DropFile.Files.Strings[i], mainform.fileopen);
166
  end;
167
 
168
  mainform.edt_vle4.Text := mainform.BestimmeDateiGroesse(mainform.fileopen);
169
  form_show(self);
170
 
171
  finally
172
  mainform.steuerelementesperren(false);
173
  mainform.zeige_wartenform(false);
174
  tmr_refresh.Enabled := true;
175
  end;
176
end;
177
 
178
procedure TElementeForm.form_resize(Sender: TObject);
179
begin
180
  btn_remove.Left := bottom_panel.width - btn_remove.Width - 8;
181
end;
182
 
183
procedure TElementeForm.form_destroy(Sender: TObject);
184
begin
185
  try
186
    dropfile.free;
187
  except
188
  end;
189
end;
190
 
191
procedure TElementeForm.form_show(Sender: TObject);
192
var
193
  i: integer;
194
begin
195
  try
196
    mainform.KaZip.close;
197
  except
198
 
199
  end;
200
 
201
  mainform.KaZip.Open(mainform.fileopen);
202
  try
203
    file_box.Clear;
204
    for i := 0 to mainform.KaZip.FileNames.Count - 1 do
205
      file_box.Items.Add(mainform.KaZip.FileNames.Strings[i]);
206
  finally
207
    mainform.KaZip.close;
208
  end;
209
end;
210
 
211
procedure TElementeForm.add_folder_click(Sender: TObject);
212
begin
213
  mainform.m_dateiensammlung_add_folder.Click;
214
  form_show(self);
215
end;
216
 
217
end.