Subversion Repositories decoder

Rev

Blame | Last modification | View Log | RSS feed

  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.
  218.