⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sxskinunit.cpp

📁 skin components for design of your applicastions
💻 CPP
字号:
//$$---- Form CPP ----
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "SXSkinUnit.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SXSkinControl"
#pragma link "SXSkinImage"
#pragma link "SXSkinLibrary"
#pragma link "SXSkinButton"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Exit1Click(TObject *Sender)
{
	Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SkinChange(TObject *Sender)
{
	TMenuItem *T;
	if ((T=dynamic_cast<TMenuItem *>(Sender))==0) exit;
	for(int A=0;A<T->Parent->Count;A++)
    	        T->Parent->Items[A]->Checked=false;
	T->Checked=true;
	SXSkinLibrary1->Active=false;
	if (T->Tag<0) exit;
	AnsiString S=SkinPaths->Strings[T->Tag];
	if ((S!="")&&(S[1]==':'))
	{
		TSXStoredSkin *Skin=GetStoredSkinByZIPName(S.SubString(2,MaxInt));
		SXSkinLibrary1->StoredSkin=Skin;
	}
	else
	{
		SXSkinLibrary1->SkinFile=S;
	}
	SXSkinLibrary1->Active=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 SkinNames=new TStringList;
 SkinPaths=new TStringList;
 AnsiString S1;
 S1=WithLastSlash(ExtractFilePath(Application->ExeName))+"Skins\\";
 SXSkinLibrary1->SkinDir=WithLastSlash(ExtractFilePath(Application->ExeName))+"Skins";
 if (FileExists(SXSkinLibrary1->SkinDir+"\\App_Skins.zip"))
 {
	 SXSkinLibrary1->SkinFile2=SXSkinLibrary1->SkinDir+"\\App_Skins.zip";
 }
 else
 if (FileExists(SXSkinLibrary1->SkinDir+"\\App_Skins\\skin.sxs"))
 {
	 SXSkinLibrary1->SkinFile2=SXSkinLibrary1->SkinDir+"\\App_Skins\\skin.sxs";
 }
 else
 if (FileExists(SXSkinLibrary1->SkinDir+"\\App_Skins\\skin.ini"))
 {
	 SXSkinLibrary1->SkinFile2=SXSkinLibrary1->SkinDir+"\\App_Skins\\skin.ini";
 }
 else
 {
         SXSkinLibrary1->SkinFile2="";
 }
 TStringList *L=new TStringList;


 TStringList *SL=new TStringList;
 for(int A=0;A<StoredSkinCount();A++)
 {
	TSXStoredSkin *Skin=GetStoredSkinByIndex(A);
	LoadStringsFromZIPSkinStream(Skin->Stream,SL);
	if (SL->Values["SkinName"]!="")
	{
		SkinNames->Add(SL->Values["SkinName"]+" (internal)");
		SkinPaths->Add(":"+Skin->FileName);
	}
 }
 SL=NULL;
 

 TSearchRec SR;
 int A=0,B;
 do
 {
	A++;
	if (A==1)
	 B=FindFirst(S1+"*.*",faDirectory,SR);
	  else B=FindNext(SR);
	if ((B==0)&&(SR.Name!=".")&&(SR.Name!="..")) L->Add(S1+SR.Name);
 }
 while (B==0);
 FindClose(SR);

 SL=new TStringList;
 for(A=0;A<L->Count;A++)
 {
	if (FileExists(L->Strings[A]+"\\skin.sxs"))
	{
		LoadStringsFromSkinFile(L->Strings[A]+"\\skin.sxs",SL);
		if (SL->Values["SkinName"]!="")
		{
			SkinNames->Add(SL->Values["SkinName"]+" (SXS)");
			SkinPaths->Add(L->Strings[A]+"\\skin.sxs");
		}
	}
	else if (FileExists(L->Strings[A]+"\\skin.ini"))
	{
		LoadStringsFromSkinFile(L->Strings[A]+"\\skin.ini",SL);
		if (SL->Values["SkinName"]!="")
		{
			SkinNames->Add(SL->Values["SkinName"]+" (INI)");
			SkinPaths->Add(L->Strings[A]+"\\skin.ini");
		}
	}
 }
 SL=NULL;
 L->Clear();


 A=0;
 do
 {
	A++;
	if (A==1)
	 B=FindFirst(S1+"*.zip",faAnyFile,SR);
	  else B=FindNext(SR);
	if ((B==0)&&(SR.Name!=".")&&(SR.Name!="..")) L->Add(S1+SR.Name);
 }
 while (B==0);
 FindClose(SR);

 SL=new TStringList;
 for(A=0;A<L->Count;A++)
 {
	if (FileExists(L->Strings[A]))
	{
		LoadStringsFromSkinFile(L->Strings[A],SL);
		if (SL->Values["SkinName"]!="")
		{
			SkinNames->Add(SL->Values["SkinName"]+" (ZIP)");
			SkinPaths->Add(L->Strings[A]);
		}
	}
 }
 SL=NULL;

 for(A=0;A<SkinNames->Count;A++)
 {
	TMenuItem *T=new TMenuItem(Skins1);
	T->Caption=SkinNames->Strings[A];
	T->Tag=A;
	T->OnClick=SkinChange;
	Skins1->Add(T);
	if (A==0) SkinChange(T);
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
 SkinNames=NULL;
 SkinPaths=NULL;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -