| 53 | 
   | 
     procedure listMouseDown(Sender: TObject; Button: TMouseButton; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 54 | 
   | 
       Shift: TShiftState; X, Y: Integer); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 55 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 | 56 | 
 – | 
     procedure FormResize(Sender: TObject); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 56 | 
   | 
     procedure FormClose(Sender: TObject; var Action: TCloseAction); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 57 | 
   | 
     procedure popup_importClick(Sender: TObject); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 58 | 
   | 
     procedure popup_exportClick(Sender: TObject); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 218 | 
   | 
   finfo: TFileInfo; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 219 | 
   | 
   fs: TFileStream; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 220 | 
   | 
 begin | 
 
 
 
 
 
 
 
 
 
 
 
 | 221 | 
 < | 
   id := ConManager.Connection[FConnectionID].ExtractFileIDOfName(filelist.Items.Strings[filelist.ItemIndex]); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 223 | 
 < | 
   finfo := ConManager.Connection[FConnectionID].GetFileInfo(id); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 224 | 
 < | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 225 | 
 < | 
   importd.Filter := 'Files of matching extension (*.' + finfo.Extension + ')|*.' + | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 226 | 
 < | 
         finfo.Extension + '|All files|*.*'; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 227 | 
 < | 
   if importd.Execute then | 
 
 
 
 
 
 
 
 
 
 | 221 | 
 > | 
   if CR_EditDat in ConManager.Connection[FConnectionID].ChangeRights then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 222 | 
   | 
   begin | 
 
 
 
 
 
 
 
 
 
 
 
 | 223 | 
 < | 
     fs := TFileStream.Create(importd.FileName, fmOpenRead); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 224 | 
 < | 
     if fs.Size <> finfo.Size then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 225 | 
 < | 
       ShowMessage('Can''t import ' + ExtractFilename(importd.FileName) + | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 226 | 
 < | 
         ', file has to have same size as file in .dat.' + CrLf + | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 227 | 
 < | 
         'Size of file in .dat: ' + FormatFileSize(finfo.Size) + CrLf + | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 228 | 
 < | 
         'Size of chosen file: ' + FormatFileSize(fs.Size)) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 229 | 
 < | 
     else begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 223 | 
 > | 
     id := ConManager.Connection[FConnectionID].ExtractFileIDOfName(filelist.Items.Strings[filelist.ItemIndex]); | 
 
 
 
 
 
 | 224 | 
 > | 
     finfo := ConManager.Connection[FConnectionID].GetFileInfo(id); | 
 
 
 
 
 
 | 225 | 
 > | 
  | 
 
 
 
 
 
 | 226 | 
 > | 
     importd.Filter := 'Files of matching extension (*.' + finfo.Extension + ')|*.' + | 
 
 
 
 
 
 | 227 | 
 > | 
           finfo.Extension + '|All files|*.*'; | 
 
 
 
 
 
 | 228 | 
 > | 
     if importd.Execute then | 
 
 
 
 
 
 | 229 | 
 > | 
     begin | 
 
 
 
 
 
 | 230 | 
 > | 
       fs := TFileStream.Create(importd.FileName, fmOpenRead); | 
 
 
 
 
 
 | 231 | 
 > | 
       if fs.Size <> finfo.Size then | 
 
 
 
 
 
 | 232 | 
 > | 
       begin | 
 
 
 
 
 
 | 233 | 
 > | 
         if not (CR_ResizeDat in ConManager.Connection[FConnectionID].ChangeRights) then | 
 
 
 
 
 
 | 234 | 
 > | 
         begin | 
 
 
 
 
 
 | 235 | 
 > | 
           ShowMessage('Can''t import ' + ExtractFilename(importd.FileName) + | 
 
 
 
 
 
 | 236 | 
 > | 
             ', file has to have same size as file in .dat with this backend.' + CrLf + | 
 
 
 
 
 
 | 237 | 
 > | 
             'Size of file in .dat: ' + FormatFileSize(finfo.Size) + CrLf + | 
 
 
 
 
 
 | 238 | 
 > | 
             'Size of chosen file: ' + FormatFileSize(fs.Size)); | 
 
 
 
 
 
 | 239 | 
 > | 
           Exit; | 
 
 
 
 
 
 | 240 | 
 > | 
         end else begin | 
 
 
 
 
 
 | 241 | 
 > | 
           if MessageBox(Self.Handle, | 
 
 
 
 
 
 | 242 | 
 > | 
               PChar('File has different size from the file in the .dat.' + CrLf + | 
 
 
 
 
 
 | 243 | 
 > | 
                     'Size of file in .dat: ' + FormatFileSize(finfo.Size) + CrLf + | 
 
 
 
 
 
 | 244 | 
 > | 
                     'Size of chosen file: ' + FormatFileSize(fs.Size) + CrLf + | 
 
 
 
 
 
 | 245 | 
 > | 
                     'Replace anyway?'), PChar('Different size'), MB_YESNO + MB_ICONWARNING) = ID_NO then | 
 
 
 
 
 
 | 246 | 
 > | 
           begin | 
 
 
 
 
 
 | 247 | 
 > | 
             Exit; | 
 
 
 
 
 
 | 248 | 
 > | 
           end; | 
 
 
 
 
 
 | 249 | 
 > | 
         end; | 
 
 
 
 
 
 | 250 | 
 > | 
       end; | 
 
 
 
 
 
 
 
 
 
 
 
 | 251 | 
   | 
       ConManager.Connection[FConnectionID].UpdateDatFile(id, fs); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 252 | 
   | 
       Self.listClick(Self); | 
 
 
 
 
 
 
 
 
 | 253 | 
 + | 
       fs.Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 254 | 
   | 
     end; | 
 
 
 
 
 
 
 
 
 
 
 
 | 255 | 
 < | 
     fs.Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 255 | 
 > | 
   end else begin | 
 
 
 
 
 
 | 256 | 
 > | 
     ShowMessage('Editing .dat-contents not allowed with this backend.'); | 
 
 
 
 
 
 
 
 
 
 
 
 | 257 | 
   | 
   end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 258 | 
   | 
 end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 259 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 465 | 
   | 
 end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 466 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 467 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 | 451 | 
 – | 
 procedure TForm_ToolTemplate.FormResize(Sender: TObject); | 
 
 
 
 
 
 
 
 
 
 | 452 | 
 – | 
 begin | 
 
 
 
 
 
 
 
 
 
 | 453 | 
 – | 
   if Self.Width < 300 then | 
 
 
 
 
 
 
 
 
 
 | 454 | 
 – | 
     Self.Width := 300; | 
 
 
 
 
 
 
 
 
 
 | 455 | 
 – | 
   if Self.Height < 200 then | 
 
 
 
 
 
 
 
 
 
 | 456 | 
 – | 
     Self.Height := 200; | 
 
 
 
 
 
 
 
 
 
 | 457 | 
 – | 
 end; | 
 
 
 
 
 
 
 
 
 
 | 458 | 
 – | 
  | 
 
 
 
 
 
 
 
 
 
 | 459 | 
 – | 
  | 
 
 
 
 
 
 
 
 
 
 | 460 | 
 – | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 468 | 
   | 
 function TForm_ToolTemplate.GetToolCloseable: Boolean; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 469 | 
   | 
 begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 470 | 
   | 
   if Assigned(FOnCheckCloseable) then |