📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
te_controls, te_engine, te_switcher, StdCtrls, ImgList,
te_extra_Effect_Controls, te_extra_wave, te_dialogs, te_stddialogs;
type
TfrmMain = class(TForm)
ThemeEngine: TTeThemeEngine;
BtnExtCtrls: TTeEffectButton;
NgGroupBox1: TTeGroupBox;
SeSkinForm1: TTeForm;
SeSkinMenuBar1: TTeMenuBar;
CustomItem10: TTeItem;
CustomItem11: TTeItem;
CustomItem12: TTeItem;
CustomItem13: TTeItem;
CustomItem14: TTeItem;
CustomItem15: TTeItem;
CustomItem18: TTeItem;
btnLoad: TTeEffectButton;
Label1: TLabel;
btnExit: TTeEffectButton;
BtnExtFileCtrls: TTeEffectButton;
teGroupBox1: TTeGroupBox;
tbBrightness: TTeTrackBar;
NgGroupBox2: TTeGroupBox;
tbHue: TTeTrackBar;
TeThemeList1: TTeThemeList;
teLabel1: TTeLabel;
TeThemeSwitcher1: TTeThemeSwitcher;
ImageList1: TImageList;
btnFullScreen: TTeEffectButton;
btnFileEdits: TTeEffectButton;
btnBoxCtrls: TTeEffectButton;
ckAnimation: TTeEffectGroupBox;
SeSkinLabel1: TTeLabel;
SeSkinLabel3: TTeLabel;
SeSkinLabel2: TTeLabel;
CB1: TTeEffectComboBox;
edTime: TTeEffectSpinEdit;
edTileCont: TTeEffectSpinEdit;
ckEnableAnimation: TTeEffectCheckBox;
WaveList1: TTeExtraWaveList;
ckSounds: TTeEffectGroupBox;
ckMouseEnter: TTeEffectCheckBox;
ckMouseClick: TTeEffectCheckBox;
CustomItem2: TTeItem;
CustomItem3: TTeItem;
CustomItem4: TTeItem;
CustomItem5: TTeItem;
TeOpenThemeDialog1: TTeOpenThemeDialog;
procedure FormCreate(Sender: TObject);
procedure CustomItem7Click(Sender: TObject);
procedure CustomItem9Click(Sender: TObject);
procedure KsBlendButton2MouseEnter(Sender: TObject);
procedure CustomItem11Click(Sender: TObject);
procedure btnLoadClick(Sender: TObject);
procedure btnLoadMouseEnter(Sender: TObject);
procedure CustomItem18Click(Sender: TObject);
procedure BrightnessChange(Sender: TObject);
procedure HueChange(Sender: TObject);
procedure BtnExtFileCtrlsMouseEnter(Sender: TObject);
procedure BtnExtFileCtrlsClick(Sender: TObject);
procedure btnFullScreenMouseEnter(Sender: TObject);
procedure btnFullScreenClick(Sender: TObject);
procedure btnFileEditsMouseEnter(Sender: TObject);
procedure btnFileEditsClick(Sender: TObject);
procedure btnBoxCtrlsClick(Sender: TObject);
procedure btnBoxCtrlsMouseEnter(Sender: TObject);
procedure ckAnimationClick(Sender: TObject);
procedure ckEnableAnimationClick(Sender: TObject);
procedure CB1Change(Sender: TObject);
procedure edTimeChange(Sender: TObject);
procedure edTileContChange(Sender: TObject);
procedure ckSoundsCheckBoxClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
uses ShellAPI, ctrls, about, te_theme, te_effect, te_extended, te_extra_version,
extra_demo_FileCtrl, extra_demo_FullScreen, extra_demo_FileEdits,
extra_demo_BoxCtrls;
{$R *.DFM}
const SRegistryKey = 'SOFTWARE\ThemeEngine\DKJ Extra';
procedure TfrmMain.FormCreate(Sender: TObject);
begin
SeSkinForm1.Caption := 'DKJ Extra for ThemeEngine Demo v. ' + sKSExtraVersion;
CB1.Items := GetEffectList;
CB1.ItemIndex := 0;
ckAnimationClick(nil);
with DefaultSoundOptions do begin
Enabled := True;
WaveClickIndex:= 1;
WaveInIndex := 0;
List := WaveList1;
end;
tbHue.Tag := 1;
tbBrightness.Tag := 1;
Try
LoadThemeFromRegistry(ThemeEngine, SRegistryKey, 'ThemeFile', 'Plex', 0);
tbHue.Position := ThemeEngine.DeltaHue;
tbBrightness.Position := ThemeEngine.DeltaBrightness;
finally
tbHue.Tag := 0;
tbBrightness.Tag := 0;
end;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
SaveThemeToRegistry(ThemeEngine, SRegistryKey);
end;
procedure TfrmMain.CustomItem7Click(Sender: TObject);
begin
ShellExecute(0, 'open', 'http://www.ksdev.com', nil, nil, SW_SHOWNORMAL);
end;
procedure TfrmMain.CustomItem9Click(Sender: TObject);
begin
{ About }
frmAbout := TfrmAbout.Create(Self);
Try
frmAbout.ShowModal;
Finally
frmAbout.Free;
end;
end;
procedure TfrmMain.btnLoadMouseEnter(Sender: TObject);
begin
Label1.Caption := 'Use the OpenDialog to select new theme file...';
end;
procedure TfrmMain.KsBlendButton2MouseEnter(Sender: TObject);
begin
Label1.Caption := 'Demonstration of the DKJ Extra''s extended controls...';
end;
procedure TfrmMain.CustomItem11Click(Sender: TObject);
begin
{ Controls 1 }
frmControls := TfrmControls.Create(Self);
try
frmControls.ShowModal;
finally
frmControls.Free;
end;
end;
procedure TfrmMain.btnLoadClick(Sender: TObject);
begin
{ Load Theme }
if TeOpenThemeDialog1.Execute then
ThemeEngine.ThemeFile := TeOpenThemeDialog1.FileName;
end;
procedure TfrmMain.CustomItem18Click(Sender: TObject);
begin
Close;
end;
procedure TfrmMain.BrightnessChange(Sender: TObject);
begin
if tbBrightness.Tag = 1 then Exit;
ThemeEngine.DeltaBrightness := tbBrightness.Position;
end;
procedure TfrmMain.HueChange(Sender: TObject);
begin
if tbHue.Tag = 1 then Exit;
ThemeEngine.DeltaHue := tbHue.Position;
end;
procedure TfrmMain.BtnExtFileCtrlsMouseEnter(Sender: TObject);
begin
Label1.Caption := 'Demonstration of the DKJ Extra''s extended File controls...';
end;
procedure TfrmMain.BtnExtFileCtrlsClick(Sender: TObject);
begin
{ Controls 1 }
frmFileCtrl := TfrmFileCtrl.Create(Self);
try
frmFileCtrl.ShowModal;
finally
frmFileCtrl.Free;
end;
end;
procedure TfrmMain.btnFullScreenMouseEnter(Sender: TObject);
begin
Label1.Caption := 'Demonstration of the DKJ Extra''s extended Full-Screen Form...';
end;
procedure TfrmMain.btnFullScreenClick(Sender: TObject);
begin
frmFullScreen := TfrmFullScreen.Create(Self);
try
frmFullScreen.ShowModal;
finally
frmFullScreen.Free;
end;
end;
procedure TfrmMain.btnFileEditsMouseEnter(Sender: TObject);
begin
Label1.Caption := 'Demonstration of the DKJ Extra''s extended File Edits...';
end;
procedure TfrmMain.btnFileEditsClick(Sender: TObject);
begin
frmFileEdits := TfrmFileEdits.Create(Self);
try
frmFileEdits.ShowModal;
finally
frmFileEdits.Free;
end;
end;
procedure TfrmMain.btnBoxCtrlsClick(Sender: TObject);
begin
frmBoxCtrls := TfrmBoxCtrls.Create(Self);
try
frmBoxCtrls.ShowModal;
finally
frmBoxCtrls.Free;
end;
end;
procedure TfrmMain.btnBoxCtrlsMouseEnter(Sender: TObject);
begin
Label1.Caption := 'Demonstration of the DKJ Extra''s extended Box controls...';
end;
procedure TfrmMain.ckAnimationClick(Sender: TObject);
begin
DefaultEffectOptions.Enabled := ckAnimation.Checked;
ckEnableAnimationClick(Sender);
CB1Change(Sender);
edTimeChange(Sender);
edTileContChange(Sender);
end;
procedure TfrmMain.ckEnableAnimationClick(Sender: TObject);
begin
DefaultEffectOptions.Animation.Enabled := ckEnableAnimation.Checked;
end;
procedure TfrmMain.CB1Change(Sender: TObject);
begin
DefaultEffectOptions.Animation.Effect := CB1.Text;
DefaultEffectOptions.Animation.EffectMouseEnter := CB1.Text;
DefaultEffectOptions.Animation.EffectMouseLeave := CB1.Text;
end;
procedure TfrmMain.edTimeChange(Sender: TObject);
begin
DefaultEffectOptions.Animation.Time := edTime.AsInteger;
end;
procedure TfrmMain.edTileContChange(Sender: TObject);
begin
DefaultEffectOptions.Animation.TileCount := edTileCont.AsInteger;
end;
procedure TfrmMain.ckSoundsCheckBoxClick(Sender: TObject);
begin
with DefaultSoundOptions do begin
Enabled := ckSounds.Checked;
if ckMouseEnter.Checked then
WaveInIndex := 0
else
WaveInIndex := -1;
if ckMouseClick.Checked then
WaveClickIndex:= 1
else
WaveClickIndex:= -1;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -