?? file.cpp
字號:
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::R2Click(TObject *Sender)
{
FindAddr();
ListRefresh();
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::D3Click(TObject *Sender)
{
TListItem *ListItem;
UFD *Delfile,*Prefile;
MFD *Delfolder,*Prefolder;
TTreeNode *TreeNode;
ListItem=ListView->Selected;
if(ListItem==NULL) return;
String str=ListItem->Caption;
FindAddr();
if(ListItem->ImageIndex==1){
Prefile=mpos->file;
if(Prefile!=NULL){
Delfile=Prefile->next;
if(Prefile->filename==ListItem->Caption){
if(mpos->file->next==NULL)
{mpos->file=NULL;free(Prefile);}
else
{mpos->file=Delfile;free(Prefile);}
goto next;
}
}
for(;Delfile;Prefile=Prefile->next,Delfile=Delfile->next)
{
if(mpos->file==NULL) break;
if(Delfile->filename==ListItem->Caption)
{ Prefile->next=Delfile->next;free(Delfile);break;}
}
next: ListRefresh();
}
else{
Prefolder=mpos->folder;
if(Prefolder!=NULL){
Delfolder=Prefolder->next;
if(Prefolder->name==ListItem->Caption){
if(mpos->folder->next==NULL)
{mpos->folder=NULL;free(Prefolder);}
else
{mpos->folder=Delfolder;free(Prefolder);}
goto follow;
}
}
for(;Delfolder;Prefolder=Prefolder->next,Delfolder=Delfolder->next)
{
if(mpos->folder==NULL) break;
if(Delfolder->name==ListItem->Caption)
{ Prefolder->next=Delfolder->next;free(Delfolder);break;}
}
follow: ListRefresh();
FindTNode();
for(TreeNode=SelNode->getFirstChild();TreeNode!=NULL;TreeNode=SelNode->GetNextChild(TreeNode))
{
if(TreeNode==NULL) return;
if(TreeNode->Text==str) {TreeNode->Delete();return;}
}
if(TreeNode==NULL) return;
}
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::O1Click(TObject *Sender)
{
ListViewDblClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::N2Click(TObject *Sender)
{
F2Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::N3Click(TObject *Sender)
{
N9Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::D1Click(TObject *Sender)
{
D3Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::R1Click(TObject *Sender)
{
N15Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::X1Click(TObject *Sender)
{
TListItem *ListItem;
ListItem=ListView->Selected;
if(ListItem==NULL) return;
addrstr=Comboaddr->Text;
FindAddr();
if(ListItem->ImageIndex==1){
flag=0;
cutfile=mpos->file;
if(cutfile==NULL) return;
while(cutfile!=NULL)
{
if(cutfile->filename==ListItem->Caption) return;
cutfile=cutfile->next;
}
}
else{
flag=1;
cutfolder=mpos->folder;
if(cutfolder==NULL) return;
while(cutfolder!=NULL)
{
if(cutfolder->name==ListItem->Caption) return;
cutfolder=cutfolder->next;
}
}
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::C3Click(TObject *Sender)
{
TListItem *ListItem;
UFD *p;
MFD *q;
ListItem=ListView->Selected;
if(ListItem==NULL) return;
FindAddr();
if(ListItem->ImageIndex==1){
flag=2;
p=mpos->file;
if(p==NULL) return;
while(p!=NULL)
{
if(p->filename==ListItem->Caption){
copyfile=(UFD *)malloc(sizeof(UFD));
copyfile->filename=p->filename;
strcpy(copyfile->text,p->text);
copyfile->pt=p->pt;
copyfile->len=p->len;
copyfile->parent=NULL;
copyfile->next=NULL;
return;
}
p=p->next;
}
}
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::P2Click(TObject *Sender)
{
String bkstr;
UFD *ffile;
MFD *ffolder;
TTreeNode *TreeNode;
bkstr=Comboaddr->Text;
if(flag==4) return;
if(flag==0){
if(cutfile->parent==NULL)
{
Comboaddr->Text=addrstr;
FindAddr();
Comboaddr->Text=bkstr;
if(cutfile->next==NULL) mpos->file=NULL;
else mpos->file=cutfile->next;
}
else{
if(cutfile->next==NULL) cutfile->parent->next=NULL;
else {cutfile->parent->next=cutfile->next;cutfile->next->parent=cutfile->parent;}
}
FindAddr();
if(mpos->file==NULL) {mpos->file=cutfile;cutfile->parent=NULL;cutfile->next=NULL;}
else{
ffile=mpos->file;
if(ffile->filename==cutfile->filename)
{
ShowMessage("文件同名,覆蓋?");
cutfile->parent=NULL;
cutfile->next=ffile->next;
mpos->file=cutfile;
free(ffile);
return;
}
while(ffile->next!=NULL){
ffile=ffile->next;
if(ffile->filename==cutfile->filename)
{
ShowMessage("文件同名,覆蓋?");
cutfile->parent=ffile->parent;
cutfile->next=ffile->next;
ffile->parent->next=cutfile;
free(ffile);
return;
}
}
ffile->next=cutfile;
cutfile->parent=ffile;
cutfile->next=NULL;
}
flag=4;
ListRefresh();
return;
}
if(flag==1){
Comboaddr->Text=addrstr;
FindTNode();
Comboaddr->Text=bkstr;
for(TreeNode=SelNode->getFirstChild();TreeNode!=NULL;TreeNode=SelNode->GetNextChild(TreeNode))
{
if(TreeNode->Text==cutfolder->name) {TreeNode->Delete();break;}
}
FindAddr();
if(cutfolder->parent->folder==cutfolder){
if(cutfolder->next==NULL) cutfolder->parent->folder=NULL;
else cutfolder->parent->folder=cutfolder->next;
}
else{
if(cutfolder->next==NULL) cutfolder->parent->next=NULL;
else {cutfolder->parent->next=cutfolder->next;cutfolder->parent=cutfolder->parent;}
}
FindTNode();
TreeView->Items->AddChild(SelNode,cutfolder->name);
if(mpos->folder==NULL) {mpos->folder=cutfolder;cutfolder->parent=mpos;cutfolder->next=NULL;}
else{
ffolder=mpos->folder;
if(ffolder->name==cutfolder->name)
{
ShowMessage("文件夾同名,覆蓋?");
cutfolder->parent=ffolder->parent;
cutfolder->next=ffolder->next;
ffolder->parent->folder=cutfolder;
free(ffolder);
return;
}
while(ffolder->next!=NULL)
{
ffolder=ffolder->next;
if(ffolder->name==cutfolder->name)
{
ShowMessage("文件夾同名,覆蓋?");
cutfolder->parent=ffolder->parent;
cutfolder->next=ffolder->next;
ffolder->parent->next=cutfolder;
free(ffolder);
return;
}
}
ffolder->next=cutfolder;
cutfolder->parent=ffolder;
cutfolder->next=NULL;
}
flag=4;
ListRefresh();
return;
}
if(flag==2){
FindAddr();
if(mpos->file==NULL) mpos->file=copyfile;
else{
ffile=mpos->file;
if(ffile->filename==copyfile->filename)
{
ShowMessage("文件同名,覆蓋?");
copyfile->parent=NULL;
copyfile->next=ffile->next;
mpos->file=copyfile;
free(ffile);
return;
}
while(ffile->next!=NULL){
ffile=ffile->next;
if(ffile->filename==copyfile->filename)
{
ShowMessage("文件同名,覆蓋?");
copyfile->parent=ffile->parent;
copyfile->next=ffile->next;
ffile->parent->next=copyfile;
free(ffile);
return;
}
}
ffile->next=copyfile;
copyfile->parent=ffile;
}
ListRefresh();
return;
}
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::M3Click(TObject *Sender)
{
TListItem *ListItem;
UFD *p,*f;
MFD *q,*r;
TTreeNode *TreeNode;
ListItem=ListView->Selected;
if(ListItem==NULL) return;
FindAddr();
if(ListItem->ImageIndex==1){
if(mpos->file==NULL) return;
for(p=mpos->file;p!=NULL;p=p->next)
{
if(p->filename==ListItem->Caption){
AnsiString str=InputBox("重命名","輸入新文件名","新文件");
for(f=mpos->file;f!=NULL;f=f->next)
{
if(f->filename==str) {ShowMessage("文件同名,無法重命名");return;}
}
p->filename=str;
ListRefresh();
return;
}
}
}
else{
if(mpos->folder==NULL) return;
for(q=mpos->folder;q!=NULL;q=q->next)
{
if(q->name==ListItem->Caption){
AnsiString str=InputBox("重命名","輸入新文件夾名","新文件夾");
for(r=mpos->folder;r!=NULL;r=r->next)
{
if(r->name==str){ShowMessage("文件夾同名,無法重命名");return;}
}
FindTNode();
for(TreeNode=SelNode->getFirstChild();TreeNode!=NULL;TreeNode=SelNode->GetNextChild(TreeNode))
{
if(TreeNode->Text==ListItem->Caption) {TreeNode->Text=str;break;}
}
q->name=str;
ListRefresh();
return;
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::M1Click(TObject *Sender)
{
M3Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::B1Click(TObject *Sender)
{
ListView->ViewStyle=vsIcon;
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::S1Click(TObject *Sender)
{
ListView->ViewStyle=vsSmallIcon;
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::L1Click(TObject *Sender)
{
ListView->ViewStyle=vsList;
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::T1Click(TObject *Sender)
{
X1Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::C2Click(TObject *Sender)
{
C3Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::P1Click(TObject *Sender)
{
P2Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall Tmainfrm::N5Click(TObject *Sender)
{
helpfrm->Show();
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -