📄 setting.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#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()<<mbYes<<mbNo,0)
==mrNo)
return;
AnsiString Path=ExtractFilePath(Application->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;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -