📄 extractunit.cpp
字号:
/******************************************************************************\
* JZip *
* *
* COPYRIGHT: *
* (C) Copyright 1999-2000 Cramon Utilities and Bytamin-C *
* *
* WWW: *
* http://www.bytamin-c.com *
* *
* DISCLAMER: *
* THE AUTHOR(S) MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY *
* OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO *
* THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR *
* PURPOSE, OR NON-INFRINGEMENT. THE AUTHOR(S) SHALL NOT BE LIABLE FOR ANY *
* DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR *
* DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. *
* *
* ---------------------------------------------------------------------------- *
* Last changed Name Changes *
* 01/13-2000 Jeppe Cramon Prepared for OpenSource release *
\******************************************************************************/
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "registry.hpp"
#include "filectrl.hpp"
#include "ExtractUnit.h"
#include "NewFldrUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SystemControlPack"
#pragma link "SystemTreeView"
#pragma resource "*.dfm"
TExtractForm *ExtractForm;
//---------------------------------------------------------------------------
__fastcall TExtractForm::TExtractForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TExtractForm::FormCreate(TObject *Sender)
{
/* --- Load settings --- */
TRegistry* thisReg = new TRegistry();
thisReg->OpenKey("SOFTWARE\\JZip\\ExtractForm", true);
if (thisReg->ValueExists("Extract To"))
{
ExtractToComboBox->Items->CommaText = thisReg->ReadString("Extract To");
}
if (thisReg->ValueExists("Last Extract To"))
ExtractToComboBox->Text = thisReg->ReadString("Last Extract To");
if (thisReg->ValueExists("Overwrite Files"))
OverwriteCheckBox->Checked = thisReg->ReadInteger("Overwrite Files");
if (thisReg->ValueExists("Skip Older Files"))
SkipOlderCheckBox->Checked = thisReg->ReadInteger("Skip Older Files");
if (thisReg->ValueExists("Use Folder Names"))
UserFolderNamesCheckBox->Checked = thisReg->ReadInteger("Use Folder Names");
// clean up
delete thisReg;
if (ExtractToComboBox->Text == "")
ExtractBitBtn->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TExtractForm::SystemTreeViewChange(TObject *Sender,
TTreeNode *Node)
{
static AnsiString Dir;
if (SystemTreeView->Selected)
{
Dir = SystemTreeView->GetNodePath(SystemTreeView->Selected);
if (Dir == "")
{
ExtractBitBtn->Enabled = false;
}
else
{
ExtractBitBtn->Enabled = true;
ExtractToComboBox->Text = Dir;
ExtractToComboBox->Hint = Dir;
}
}
else
{
ExtractBitBtn->Enabled = false;
}
}
//---------------------------------------------------------------------------
void __fastcall TExtractForm::ExtractToComboBoxChange(TObject *Sender)
{
ExtractToComboBox->Hint = ExtractToComboBox->Text;
ExtractBitBtn->Enabled = ExtractToComboBox->Text != "";
}
//---------------------------------------------------------------------------
void __fastcall TExtractForm::SpeedButton1Click(TObject *Sender)
{
try
{
SystemTreeView->Directory = ExtractToComboBox->Text;
}
catch(...) {}
}
//---------------------------------------------------------------------------
void __fastcall TExtractForm::NewBitBtnClick(TObject *Sender)
{
// Set label and edit text
if (ExtractToComboBox->Text == "")
{
NewFolderForm->FileNameLabel->Caption = "[None]";
NewFolderForm->DirNameEdit->Text = "";
}
else
{
NewFolderForm->FileNameLabel->Caption = MinimizeName(ExtractToComboBox->Text,
NewFolderForm->FileNameLabel->Canvas,
NewFolderForm->FileNameLabel->Width);
NewFolderForm->DirNameEdit->Text = ExtractToComboBox->Text;
}
// Show
NewFolderForm->ShowModal();
if (NewFolderForm->ModalResult == mrCancel)
return;
ForceDirectories(NewFolderForm->DirNameEdit->Text);
if (DirectoryExists(NewFolderForm->DirNameEdit->Text))
{
ExtractToComboBox->Text = NewFolderForm->DirNameEdit->Text;
ExtractToComboBox->Hint = NewFolderForm->DirNameEdit->Text;
SystemTreeView->Directory = NewFolderForm->DirNameEdit->Text;
}
else
Application->MessageBox("Couldn't create new Folder!", "Error", MB_OK | MB_ICONERROR);
}
//---------------------------------------------------------------------------
void __fastcall TExtractForm::ExtractBitBtnClick(TObject *Sender)
{
// Add dir to list
if (ExtractToComboBox->Items->IndexOf(ExtractToComboBox->Text) == -1)
ExtractToComboBox->Items->Add(ExtractToComboBox->Text);
}
//---------------------------------------------------------------------------
void __fastcall TExtractForm::FormDestroy(TObject *Sender)
{
/* --- Save settings --- */
TRegistry* thisReg = new TRegistry();
thisReg->OpenKey("SOFTWARE\\JZip\\ExtractForm", true);
thisReg->WriteString("Extract To", ExtractToComboBox->Items->CommaText);
thisReg->WriteInteger("Overwrite Files", OverwriteCheckBox->Checked);
thisReg->WriteInteger("Skip Older Files", SkipOlderCheckBox->Checked);
thisReg->WriteInteger("Use Folder Names", UserFolderNamesCheckBox->Checked);
thisReg->WriteString("Last Extract To", ExtractToComboBox->Text);
// Clean up
delete thisReg;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -