www.pudn.com > C++Builder6.0To-screensave.rar > setting.cpp
//--------------------------------------------------------------------------- #include#pragma hdrstop #include "setting.h" #include "screen.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TSettingForm *SettingForm; //--------------------------------------------------------------------------- __fastcall TSettingForm::TSettingForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TSettingForm::RadioButton1Click(TObject *Sender) { CheckListBox1->Enabled=RadioButton2->Checked; TrackBar1->Enabled=!RadioButton2->Checked; PreviewBitBtn->Enabled=false; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::RadioButton2Click(TObject *Sender) { CheckListBox1->Enabled=RadioButton2->Checked; PreviewBitBtn->Enabled=false; TrackBar1->Enabled=!RadioButton2->Checked; for(int i=0;i<16;i++) CheckListBox1->Checked[i]=true; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::FormCreate(TObject *Sender) { Reg= new TRegistry(); AnsiString Path=ExtractFilePath(Application->ExeName); try { ListBox1->Items->LoadFromFile(Path+"PicList"); ListBox2->Items->LoadFromFile(Path+"SndList"); } catch(...){} Reg->RootKey=HKEY_CURRENT_USER; Reg->OpenKey("\\Software\\ScreenSaverDIY\\", true); if (!Reg->ValueExists("Mode")) //不存在则赋默认初值 { Reg->WriteInteger("Mode",1); Reg->WriteInteger("Speed",3); RadioButton1->Checked=true; for (int i=0;i<16;i++) Reg->WriteBool("Effect"+IntToStr(i),true); } else //存在则读取 { if(Reg->ReadInteger("Mode")==0) { RadioButton1->Checked=true; TrackBar1->Position=Reg->ReadInteger("Speed"); } else RadioButton2->Checked=true; for (int i=0;i<16;i++) CheckListBox1->Checked[i]= Reg->ReadBool("Effect"+IntToStr(i)); } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::FormDestroy(TObject *Sender) { delete Reg; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::ExitBitBtnClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TSettingForm::PicAddBitBtnClick(TObject *Sender) { OpenDialog1->Filter = GraphicFilter(__classid(TGraphic)); if (OpenDialog1->Execute()){ if (FileExists(OpenDialog1->FileName)) ListBox1->Items->Add(OpenDialog1->FileName); else MessageBox(Handle,"文件不存在!","错误",MB_OK); } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::PicDelBitBtnClick(TObject *Sender) { ListBox1->Items->Delete(ListBox1->ItemIndex); } //--------------------------------------------------------------------------- void __fastcall TSettingForm::MusicAddBitBtnClick(TObject *Sender) { OpenDialog1->Filter = "All Music Files(*.mdi;*.wav)|*.mid;*.wav|MIDI Files(*.mdi)|*.mid|Wave Files(*.wav)|*.wav"; if (OpenDialog1->Execute()){ if (FileExists(OpenDialog1->FileName)) ListBox2->Items->Add(OpenDialog1->FileName); else MessageBox(Handle,"文件不存在!","错误",MB_OK); } } //--------------------------------------------------------------------------- void __fastcall TSettingForm::MusicDelBitBtnClick(TObject *Sender) { ListBox2->Items->Delete(ListBox2->ItemIndex); } //--------------------------------------------------------------------------- void __fastcall TSettingForm::SaverSelCheckBoxClick(TObject *Sender) { PasswordCheckBox->Enabled=SaverSelCheckBox->Checked; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::ReNameCheckBoxClick(TObject *Sender) { NameEdit->Enabled=ReNameCheckBox->Checked; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::PreviewBitBtnClick(TObject *Sender) { TScreenForm *ScreenForm=new TScreenForm(NULL); if (ScreenForm->ShowModal()) delete ScreenForm; } //--------------------------------------------------------------------------- void __fastcall TSettingForm::ApplyBitBtnClick(TObject *Sender) { if( MessageDlg("确定应用您所做的设置么?",mtConfirmation,TMsgDlgButtons()< ExeName); if (ListBox1->Count) ListBox1->Items->SaveToFile(Path+"PicList"); else { ShowMessage("您没有加入图片,请先加入图片!"); return; } ListBox2->Items->SaveToFile(Path+"SndList"); //保存设置变量 if (RadioButton1->Checked) { Reg->WriteInteger("Mode",0); Reg->WriteInteger("Speed",TrackBar1->Position); } else Reg->WriteInteger("Mode",1); for (int i=0;i<16;i++) Reg->WriteBool("Effect"+IntToStr(i),CheckListBox1->Checked[i]); if (SaverSelCheckBox->Checked) //设为当前屏保 { TRegistry *Reg1= new TRegistry(); Reg1->RootKey=HKEY_CURRENT_USER; Reg1->OpenKey("\\Control Panel\\Desktop",true); Reg1->WriteString("ScreenSaveActive","1"); //获取系统目录 char *buffer; AnsiString srcfile,destfile; unsigned int size; buffer=new char[255]; size=256; GetSystemDirectory(buffer,size); //复制文件 srcfile=Path+"ScreenSaverDIY.SCR"; destfile=AnsiString(buffer)+"\\"+NameEdit->Text+".SCR"; if (FileExists(AnsiString(buffer)+"\\ScreenSaverDIY.SCR")) DeleteFile( (AnsiString(buffer)+"\\ScreenSaverDIY.SCR").c_str() ); CopyFile(srcfile.c_str(),destfile.c_str(),0); srcfile=Path+"PicList"; destfile=AnsiString(buffer)+"\\"+"PicList"; CopyFile(srcfile.c_str(),destfile.c_str(),0); srcfile=Path+"SndList"; destfile=AnsiString(buffer)+"\\"+"SndList"; CopyFile(srcfile.c_str(),destfile.c_str(),0); //修改注册表 if (!ReNameCheckBox->Checked) destfile=AnsiString(buffer)+"\\Screen~1.SCR"; else { if (NameEdit->Text.Length()<=6) destfile="\\"+NameEdit->Text+".SCR"; else destfile="\\"+NameEdit->Text.SubString(1,6)+"~1.SCR"; } Reg1->WriteString("SCRNSAVE.EXE",destfile); if (PasswordCheckBox->Checked) //设置密码 Reg1->WriteString("ScreenSaverIsSecure","1"); else Reg1->WriteString("ScreenSaverIsSecure","0"); delete Reg1; } PreviewBitBtn->Enabled=true; } //---------------------------------------------------------------------------