📄 mainfr.~pas
字号:
unit mainfr;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CoolTrayIcon, ExtCtrls, XPMenu, Menus, QControls,
BarPopupMenu,MMsystem, te_controls, ksthemebuttons;
type
TMainform = class(TForm)
CoolTrayIcon1: TCoolTrayIcon;
XPMenu1: TXPMenu;
ChooseRG: TRadioGroup;
OkBtn: TButton;
Panel1: TPanel;
PopupMenu1: TPopupMenu;
Timer1: TTimer;
Panel2: TPanel;
Label2: TLabel;
Label3: TLabel;
CurrentSetLab: TLabel;
CurrentSetLabText: TLabel;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
SetBtn: TButton;
Panel3: TPanel;
IsDefaultSetCk: TCheckBox;
Label7: TLabel;
InDay: TEdit;
Label6: TLabel;
InYear: TEdit;
Label5: TLabel;
InMonth: TEdit;
Label4: TLabel;
Panel4: TPanel;
Label1: TLabel;
InSetTime: TEdit;
ExitBtn: TButton;
Timer2: TTimer;
SongTimer: TTimer;
SongName: TLabel;
stopBtn: TTeThemeButton;
PlayList: TTeThemeButton;
procedure N4Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure IsDefaultSetCkClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure OkBtnClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ExitBtnClick(Sender: TObject);
procedure SetBtnClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure ChooseRGClick(Sender: TObject);
procedure PlayListClick(Sender: TObject);
procedure SongTimerTimer(Sender: TObject);
procedure stopBtnClick(Sender: TObject);
procedure CoolTrayIcon1DblClick(Sender: TObject);
private
{ Private declarations }
IsPowerOff:boolean;
IsReStar :boolean;
IsLogOff :boolean;
IsCannel :boolean;
IsModify :boolean;
IsPlaySong:boolean;
bStopBtn :boolean;
starTime, PaseTime: TTime;
// :TDateTime;
public
next :integer;
CountSong :integer;
CurrentTime,SystemTime,SetTime:TsystemTime;
{ Public declarations }
function validSetTime(Currtime, SetCompTime: Tsystemtime):boolean;
function CompTime(CurrTime, SetCompTime: Tsystemtime):boolean;
procedure MessageFormShow(CurrTime, SetCompTime: TsystemTime);
procedure OnTimePlaySong;
protected procedure OntimeToDo;
end;
var
Mainform: TMainform;
implementation
uses useexitwindll, MessFr, UtPlayList;
{$R *.dfm}
procedure TMainform.N4Click(Sender: TObject);
begin
close;
end;
procedure TMainform.N1Click(Sender: TObject);
begin
//Mainform.Visible:= true;
MainForm.CoolTrayIcon1.ShowMainForm;
end;
procedure TMainform.IsDefaultSetCkClick(Sender: TObject);
begin
if Mainform.IsDefaultSetCk.Checked then
begin
Label4.Enabled := false;
Label5.Enabled := false;
Label6.Enabled := false;
Label7.Enabled := false;
InYear.Enabled := false;
InMonth.Enabled:= false;
InDay.Enabled := false;
end
else
begin
Label4.Enabled := true;
Label5.Enabled := true;
Label6.Enabled := true;
Label7.Enabled := true;
InYear.Enabled := true;
InMonth.Enabled:= true;
InDay.Enabled := true;
//CurrentTime := GetTime;
GetLocalTime(SystemTime);
InYear.Text := intToStr(SystemTime.wYear);
InMonth.Text := intToStr(SystemTime.wMonth);
Inday.Text := intToStr(SystemTime.wDay);
end;
end;
procedure TMainform.FormCreate(Sender: TObject);
begin
// := '关机工具';
IsPowerOff := false;
IsLogOff := false;
IsReStar := false;
IsCannel := true;
bStopBtn := true;
//CurrentTime := GetTime;
GetLocalTime(SystemTime);
SetTime := SystemTime;
SetTime.wYear := 2099;//设初始值
InYear.Text := intToStr(SystemTime.wYear);
InMonth.Text := intToStr(SystemTime.wMonth);
Inday.Text := intToStr(SystemTime.wDay);
end;
procedure TMainform.OkBtnClick(Sender: TObject);
begin
//SetBtn.OnClick(Sender);
bStopBtn := true ;
StopBtn.Caption := '停播';
Timer1.Enabled := true;
if ChooseRG.ItemIndex = 1 then
begin
IsReStar := true;
IsPowerOff := false;
IsLogOff := false;
IsCannel := false;
IsPlaySong := false;
CurrentSetLabText.Caption := '当前设置为重启! ';
//ShowMessage('1');
end;
if ChooseRG.ItemIndex = 0 then
begin
IsReStar := false;
IsPowerOff := true;
IsLogOff := false;
IsCannel := false;
IsPlaySong := false;
CurrentSetLabtext.Caption := '当前设置为关机! ';
//ShowMessage('0');
end;
if ChooseRG.ItemIndex = 2 then
begin
IsReStar := false;
IsPowerOff := false;
IsLogOff := true;
IsCannel := false;
IsPlaySong := false;
CurrentSetLabtext.Caption := '当前设置为注销! ';
//ShowMessage('2');
end;
if ChooseRG.ItemIndex = 3 then
begin
IsReStar := false;
IsPowerOff := false;
IsLogOff := false;
IsCannel := false;
IsPlaySong := true;
CurrentSetLabtext.Caption := '当前设置为定时放歌! ';
end;
if ChooseRG.ItemIndex = 4 then
begin
IsReStar := false;
IsPowerOff := false;
IsLogOff := false;
IsCannel := true;
IsModify := false;
IsPlaySong := false;
CurrentSetLabtext.Caption := '当前未设置操作! ';
try
pvStopMp3;
pvFreeMP3;
except
;
end;
Timer1.Enabled := false;
Timer2.Enabled := false;
MessageForm.Hide;
end;
end;
procedure TMainform.OntimeToDo;
begin
if IsPowerOff then
begin
PowerOffWin;
close;
end;
if IsReStar then
begin
ReStarWin;
close;
end;
if IsLogOff then
begin
LogOffWin;
close;
end;
if IsPlaySong then
OnTimePlaySong;
if IsCannel then ;
if ISPlaySong = true then
SongName.Visible := true
else
SongName.Visible := false;
end;
procedure TMainform.Timer1Timer(Sender: TObject);
begin
GetLocalTime(CurrentTime);
if not MessageForm.Visible then
MessageFormShow(CurrentTime,SetTime);
if compTime(CurrentTime,SetTime) then
begin
// showmessage('dklsjl');
OntimeToDo;
end;
end;
procedure TMainform.ExitBtnClick(Sender: TObject);
begin
close;
end;
procedure TMainform.SetBtnClick(Sender: TObject);
var
strLen ,intPre,IntNext,compare,AddNO:integer;
strPre,StrNext,AllStr:string;
ColonPos,ColonPos2:integer;
begin
if InSetTIme.Text = '' then
begin
GetLocalTime(SetTime);
StrPre := inttoStr(SetTime.wHour);
StrNext:= IntToStr(SetTime.wMinute);
InsetTime.Text := StrPre+':'+strNext;
CurrentSetLab.Caption := '当前设置时间为'+InSetTime.Text+' ';
exit;
end;
AllStr := InSetTime.Text;
COlonPos := Pos(' ',InSetTime.Text);
if ColonPos <> 0 then
begin
ShowMessage('错!时间不能有空格');
exit;
end;
Compare := 5; //比较量,字符长度
addNO := 1;//":"号所占的字符大小
strLen := InSetTime.GetTextLen;
if strLen = 0 then exit;
ColonPos2 := Pos(':',InSetTime.Text); //中文 " :"定位
ColonPos := pos(':',InSetTime.Text); // 英文":" 定位
if ColonPos2 <> 0 then
begin
Compare := 6;
ColonPos := ColonPos2;
AddNO := 2;
end;
if (strLen > Compare) then
begin
showmessage('输入时间错!');
InSetTime.Clear;
exit; //退出本procedure
end;
if colonPos = 0 then
begin
StrPre := copy(InSetTime.Text,1,strLen);
StrNext :='';
intPre := strtoint(strpre);
intNext := 0;
end else
begin
StrPre := copy(InSetTime.Text,1,ColonPos-1);
StrNext := copy(InSetTime.Text,ColonPos+addNO,strLen-colonPos-AddNo+1);
intPre := strtoint(strpre);
if strNext <> '' then
intNext := StrToInt(strNext)
else intNext := 0;
end;
if intPre >=24 then
begin
showmessage('输入小时错!');
InSetTime.Clear;
exit;
end;
if intNext >= 60 then
begin
Application.MessageBox('输入分钟错!', '定时关机');//,[smbOK],smsWaring);
InSetTime.Clear;
exit;
end;
CurrentSetLab.Caption := '当前设置时间为'+InSetTime.Text+' ';
//设置比较
GetLocalTime(CurrentTime);
SetTime := CurrentTime;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -