📄 main.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <registry.hpp>
#include <mmsystem.h>
#include <extctrls.hpp>
#include "main.h"
#include "xFiles.hpp"
#include "xUtils.hpp"
#include "xGraphics.hpp"
#include "xRegistry.hpp"
#include "xDesktop.hpp"
#include "xFonts.hpp"
#include "xControls.hpp"
#include "about.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TMainForm::ReadThemeItem(TIniFile* IniFile, AnsiString Section, AnsiString Ident)
{
if (Ident == "") Ident = "DefaultValue";
AnsiString value = IniFile->ReadString(Section, Ident, "");
AnsiString S = FThemePath + ExtractFileName(value);
if (FileExistsAfterTruncate(S)) value = S;
return value;
}
void __fastcall TMainForm::ReadThemeFile(AnsiString FileName)
{
DoBusy(true);
try {
FThemePath = PathWithSlash(ExtractFilePath(FileName), '\\');
FThemeName = ExtractFileName(FileName);
TIniFile* IniFile = new TIniFile(FileName);
try {
// read metrics
AnsiString S;
S = ReadThemeItem(IniFile, secMetrics, "IconMetrics");
StringToBuffer(S, &FIM, sizeof(FIM));
S = ReadThemeItem(IniFile, secMetrics, "NonClientMetrics");
StringToBuffer(S, &FNM, sizeof(FNM));
FMyFonts[mfIcon] = FIM.lfFont;
FMyFonts[mfCaptionFont] = FNM.lfCaptionFont;
FMyFonts[mfsmCaptionFont] = FNM.lfSmCaptionFont;
FMyFonts[mfMenuFont] = FNM.lfMenuFont;
FMyFonts[mfStatusFont] = FNM.lfStatusFont;
FMyFonts[mfMessageFont] = FNM.lfMessageFont;
// read my icons
if (IniFile->SectionExists(secMyComputerKey))
FMyIcons[mcMyComputer] = ReadThemeItem(IniFile, secMyComputerKey, ""); // for fool win98"s theme
else
FMyIcons[mcMyComputer] = ReadThemeItem(IniFile, secMyComputer, "");
if (IniFile->SectionExists(secNeighborKey))
FMyIcons[mcNeighbor] = ReadThemeItem(IniFile, secNeighborKey, "");
else
FMyIcons[mcNeighbor] = ReadThemeItem(IniFile, secNeighbor, "");
if (IniFile->SectionExists(secRecycleBinKey)) {
FMyIcons[mcRecycleBinFull] = ReadThemeItem(IniFile, secRecycleBinKey, "full");
FMyIcons[mcRecycleBinEmpty] = ReadThemeItem(IniFile, secRecycleBinKey, "empty");
} else {
FMyIcons[mcRecycleBinFull] = ReadThemeItem(IniFile, secRecycleBin, "full");
FMyIcons[mcRecycleBinEmpty] = ReadThemeItem(IniFile, secRecycleBin, "empty");
}
// read my colors
for (TMyColor i = 0; i <= TMyColor_MAX; i = i + 1) {
AnsiString S = ReadThemeItem(IniFile, secColors, MyColorID[i]);
if (S != "")
FMyColors[i] = RGBStringToColor(S);
else {
if (i == GradientActiveTitle)
FMyColors[i] = FMyColors[ActiveTitle];
else if (i == GradientInactiveTitle)
FMyColors[i] = FMyColors[InactiveTitle];
else
FMyColors[i] = -1; // 箇砞
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -