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

📄 mainfr.~pas

📁 可以定时开关机
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:

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 + -