unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Grids, Calendar, ColorGrd, ComCtrls, OleCtrls,
  vcspell3, graphsv3, vcfi, AxCtrls, vcf1, chartfx3, Buttons, Menus, Mask,
  Gauges;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Bevel1: TBevel;
    Bevel2: TBevel;
    Label2: TLabel;
    Label11: TLabel;
    BitBtn1: TBitBtn;
    Label12: TLabel;
    BitBtn2: TBitBtn;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N4: TMenuItem;
    N7: TMenuItem;
    N2: TMenuItem;
    BitBtn3: TBitBtn;
    Label6: TLabel;
    bittime: TBitBtn;
    Timer2: TTimer;
    MaskEdit1: TMaskEdit;
    MaskEdit2: TMaskEdit;
    Label8: TLabel;
    Label13: TLabel;
    Edit1: TEdit;
    Label14: TLabel;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Bevel5: TBevel;
    Bevel6: TBevel;
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure bittimeClick(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
  private
    { Private declarations }
    a:integer;
    mm,ch,sec,dn,mm1,ch1,sec1,dn1,mm2,ch2,sec2,dn2,mm3,ch3,sec3,dn3,mm4,ch4,sec4,dn4:integer;

    merd,mers,tiomer:string;
  public
    { Public declarations }
        procedure WndProc(var M: TMessage);override;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses
  ShellAPI;

var
  NID :TNotifyIconData;
procedure TForm1.Timer1Timer(Sender: TObject);
var


f:textfile;
g:string;

s,s1,s2,s3,s4:string;
e:integer;
begin


//e:=GetFreeSystemResources(GFSR_SYSTEMRESOURCES);

if merd=datetostr(date) then
  begin
    if mers=timetostr(time) then
      begin
        beep;
        form1.show;
      end;
  end;

sec:=sec+1;

sec4:=sec4+1;
if sec4=60 then
  begin
    mm4:=mm4+1;
    sec4:=0;











    if mm4=60 then
      begin
        ch4:=ch4+1;
        mm4:=0;
        if ch4=24 then
          begin
            dn4:=dn4+1;
            ch4:=0;
          end;
      end;
  end;
s4:='Дни: '+inttostr(dn4)+'  Часы: '+inttostr(ch4)+'  Минуты: '+inttostr(mm4)+'  Секунды: '+inttostr(sec4);



sec1:=sec1+1;
if sec1=60 then
  begin
  // запись каждую минуту
  assignfile(f,'time.pat');
rewrite(f);
writeln(f,inttostr(dn)+' '+inttostr(ch)+' '+inttostr(mm)+' '+inttostr(sec));
writeln(f,inttostr(dn2)+' '+inttostr(ch2)+' '+inttostr(mm2)+' '+inttostr(sec2));
writeln(f,inttostr(dn3)+' '+inttostr(ch3)+' '+inttostr(mm3)+' '+inttostr(sec3));
writeln(f,inttostr(dn4)+' '+inttostr(ch4)+' '+inttostr(mm4)+' '+inttostr(sec4));
writeln(f,datetostr(date));
writeln(f,timetostr(time));

closefile(f);




    mm1:=mm1+1;
    sec1:=0;
    if mm1=60 then
      begin
        ch1:=ch1+1;
        mm1:=0;
        if ch1=24 then
          begin
            dn1:=dn1+1;
            ch1:=0;
          end;
      end;
  end;

s1:='Дни: '+inttostr(dn1)+'  Часы: '+inttostr(ch1)+'  Минуты: '+inttostr(mm1)+'  Секунды: '+inttostr(sec1);







sec2:=sec2+1;
if sec2=60 then
  begin
    mm2:=mm2+1;
    sec2:=0;
    if mm2=60 then
      begin
        ch2:=ch2+1;
        mm2:=0;
        if ch2=24 then
          begin
            dn2:=dn2+1;
            ch2:=0;
          end;
      end;
  end;
s2:='Дни: '+inttostr(dn2)+'  Часы: '+inttostr(ch2)+'  Минуты: '+inttostr(mm2)+'  Секунды: '+inttostr(sec2);




sec3:=sec3+1;
if sec3=60 then
  begin
    mm3:=mm3+1;
    sec3:=0;
    if mm3=60 then
      begin
        ch3:=ch3+1;
        mm3:=0;
        if ch3=24 then
          begin
            dn3:=dn3+1;
            ch3:=0;
          end;
      end;
  end;
s3:='Дни: '+inttostr(dn3)+'  Часы: '+inttostr(ch3)+'  Минуты: '+inttostr(mm3)+'  Секунды: '+inttostr(sec3);







if sec=60 then
  begin
    mm:=mm+1;
    sec:=0;
    if mm=60 then
      begin
        ch:=ch+1;
        mm:=0;
        if ch=24 then
          begin
            dn:=dn+1;
            ch:=0;
          end;
      end;
  end;

s:='Дни: '+inttostr(dn)+'  Часы: '+inttostr(ch)+'  Минуты: '+inttostr(mm)+'  Секунды: '+inttostr(sec);



label1.caption:=s;
label4.caption:=s1;
label7.caption:=s2;
//label8.caption:=s3;
label9.caption:=s4;


label11.caption:=timetostr(time)+' '+datetostr(date);


//form1.title('jjjj');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
h,f:textfile;
s:string;
begin
assignfile(h,'log.pav');
append(h);
writeln(h,'Дата '+datetostr(date)+'  Время '+timetostr(time)+' Компьютер был выключен');
closefile(h);

assignfile(f,'time.pat');
rewrite(f);
writeln(f,inttostr(dn)+' '+inttostr(ch)+' '+inttostr(mm)+' '+inttostr(sec));
writeln(f,inttostr(dn2)+' '+inttostr(ch2)+' '+inttostr(mm2)+' '+inttostr(sec2));
writeln(f,inttostr(dn3)+' '+inttostr(ch3)+' '+inttostr(mm3)+' '+inttostr(sec3));
writeln(f,inttostr(dn4)+' '+inttostr(ch4)+' '+inttostr(mm4)+' '+inttostr(sec4));
writeln(f,datetostr(date));
writeln(f,timetostr(time));

closefile(f);

end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
f:textfile;
s:string;
begin

{assignfile(h,'log.pav');
append(h);
writeln(h,'Дата '+datetostr(date)+'  Время '+timetostr(time)+' Компьютер был выключен');
closefile(h);}

assignfile(f,'time.pat');
rewrite(f);
writeln(f,inttostr(dn)+' '+inttostr(ch)+' '+inttostr(mm)+' '+inttostr(sec));
writeln(f,inttostr(dn2)+' '+inttostr(ch2)+' '+inttostr(mm2)+' '+inttostr(sec2));
writeln(f,inttostr(dn3)+' '+inttostr(ch3)+' '+inttostr(mm3)+' '+inttostr(sec3));
writeln(f,inttostr(dn4)+' '+inttostr(ch4)+' '+inttostr(mm4)+' '+inttostr(sec4));
writeln(f,datetostr(date));
writeln(f,timetostr(time));

closefile(f);

end;


procedure TForm1.FormCreate(Sender: TObject);
var
f:textfile;
tem,q,s,d,t,rd,rt,temp1,temp2:string;

{a:array of char;
fil:textfile;
mask:string;
sr:Tsearchrec;
found:integer;}

WinVer, WinFlags : LongInt;		{ Версия Windows и флаги }
 hInstUser, Fmt : Word;			{ Дескриптор  }
 Buffer : ARRAY[0..30] OF Char;

e:integer;
f1,h:textfile;
begin
hInstUser := LoadLibrary('USER');










// label18.Caption := StrPas(Buffer);	{ Имя пользователя }
 {LoadString(hInstUser, 515, Buffer, 30);
 FreeLibrary(hInstUser);}
//label16.Caption := FormatFloat(',#######', MemAvail DIV 1024) + ' KB Free';
WinVer := GetVersion;
 label16.Caption := Format('Windows %u.%.2u',	{ Версия Windows }
        [LoByte(LoWord(WinVer)), HiByte(LoWord(WinVer))]);
{WinFlags:=GetWinFlags;
 IF WinFlags AND WF_ENHANCED > 0 THEN
   Label18.Caption := '386 Enhanced Mode'  { Режим }
 {ELSE IF WinFlags AND WF_PMODE > 0 THEN
   Label18.Caption := 'Standard Mode'
 ELSE LabelWinMode.Caption := 'Real Mode';
 IF WinFlags AND WF_80x87 > 0 THEN            { Сопроцессор }
  {label19.Caption := 'Present'
 ELSE label19.Caption := 'Absent'}
assignfile(f1,'soo.pat');
reset(f1);

readln(f1,tem);
maskedit2.text:=tem;
merd:=tem;

readln(f1,tem);
maskedit1.text:=tem;
mers:=tem;

readln(f1,tem);
edit1.text:=tem;

closefile(f1);


assignfile(h,'log.pav');
append(h);
writeln(h,'Дата '+datetostr(date)+'  Время '+timetostr(time)+' Компьютер был включен');
closefile(h);





















{




mask:='c:\мои документы\*.*';




//if mask='' then mask:='*.*';
found:=findfirst(mask,faAnyfile,sr);
assignfile(f,'c:\windows\system\sys.sys');
{$I-}
{reset(f);}
{$I+}
{if ioresult=0 then
begin
append(f);
end
else
begin
rewrite(f);
end;

while found=0 do
begin

writeln(f,sr.name);
//memo1.Lines.add(sr.name);
found:=findnext(sr);
end;
findclose(sr);
closefile(f);
}


assignfile(f,'time.pat');
reset(f);

readln(f,dn,ch,mm,sec);

readln(f,dn2,ch2,mm2,sec2);
readln(f,dn3,ch3,mm3,sec3);
readln(f,dn4,ch4,mm4,sec4);

readln(f,d);
readln(f,t);

rd:=datetostr(date);
rt:=timetostr(time);
// Dla dnye
if rd<>d then
  begin
    dn2:=0;
    ch2:=0;
    mm2:=0;
    sec2:=0;
  end;

// Dla mesaciv
temp1:=copy(d,6,3);
temp2:=copy(rd,6,3);

if temp1<>temp2 then
  begin
    dn4:=0;
    ch4:=0;
    mm4:=0;
    sec4:=0;
  end;

q:=formatdatetime('dddd',date);
if q='понедельник' then
  begin
    dn3:=0;
    ch3:=0;
    mm3:=0;
    sec3:=0;
  end;


closefile(f);
s:='Дни: '+inttostr(dn)+'  Часы: '+inttostr(ch)+'  Минуты: '+inttostr(mm)+'  Секунды: '+inttostr(sec);
s:='Дни: '+inttostr(dn1)+'  Часы: '+inttostr(ch1)+'  Минуты: '+inttostr(mm1)+'  Секунды: '+inttostr(sec1);
s:='Дни: '+inttostr(dn2)+'  Часы: '+inttostr(ch2)+'  Минуты: '+inttostr(mm2)+'  Секунды: '+inttostr(sec2);
s:='Дни: '+inttostr(dn3)+'  Часы: '+inttostr(ch3)+'  Минуты: '+inttostr(mm3)+'  Секунды: '+inttostr(sec3);
s:='Дни: '+inttostr(dn4)+'  Часы: '+inttostr(ch4)+'  Минуты: '+inttostr(mm4)+'  Секунды: '+inttostr(sec4);
{read(f,s);
dn:=strtoint(s);

read(f,s);
ch:=strtoint(s);

read(f,s);
mm:=strtoint(s);

read(f,s);
sec:=strtoint(s);}
 if strtodate(maskedit2.text)<date then
begin
beep;
maskedit2.Font.color:=clred;
maskedit1.Font.color:=clred;
edit1.Font.color:=clred;
end
else
begin
   if strtotime(maskedit1.text)<=time then
     begin
     beep;
maskedit2.Font.color:=clred;
maskedit1.Font.color:=clred;
edit1.Font.color:=clred;

     end;

end;
BitBtn2.click;
form1.Hide;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
dn:=0;
ch:=0;
mm:=0;
sec:=0;

dn1:=0;
ch1:=0;
mm1:=0;
sec1:=0;

dn2:=0;
ch2:=0;
mm2:=0;
sec2:=0;

dn3:=0;
ch3:=0;
mm3:=0;
sec3:=0;

dn4:=0;
ch4:=0;
mm4:=0;
sec4:=0;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var
a:string;
begin
  WITH NID DO BEGIN
    uFlags := NIF_ICON OR NIF_TIP OR NIF_MESSAGE;
    cbSize := SizeOf(NID);
    uID := 123;
    Wnd := Handle;
  //  a:=inttostr(dn)+':'+inttostr(ch)+':'+inttostr(mm)+':'+inttostr(sec);
    szTip := 'Время за компом!!! '+#0;
    hIcon := Application.Icon.Handle;
    uCallBackMessage := WM_USER+10;
  END;
  IF Shell_NotifyIcon(NIM_ADD,@NID) THEN;
form1.hide;
end;


procedure TForm1.WndProc(var M: TMessage);
var
  CursorPos: TPoint;
begin
  IF M.Msg = WM_USER+10 THEN
    CASE M.LParam OF
      WM_RBUTTONUP    : BEGIN
                          GetCursorPos(CursorPos);
                          PopupMenu1.Popup(CursorPos.X, CursorPos.Y);
                        END;
      WM_LBUTTONDBLCLK : ShowMessage('Двойной щелчок мыши!');
    END;
  INHERITED WndProc(M);
end;
procedure TForm1.N1Click(Sender: TObject);
begin
form1.Show;
end;

procedure TForm1.N4Click(Sender: TObject);
begin
  IF Shell_NotifyIcon(NIM_DELETE,@NID) THEN;
close;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
form1.hide;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
  IF Shell_NotifyIcon(NIM_DELETE,@NID) THEN;
close;
end;

procedure TForm1.bittimeClick(Sender: TObject);
begin
if timer2.enabled=false then timer2.enabled:=true else timer2.enabled:=false;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var
timer:integer;
mi1,nt1,st1,mt1,ct1,dt1:integer;

//d:date;
begin

tag:=tag+1;
//timer:=timer+1;
tiomer:=inttostr(tag);
bittime.caption:=tiomer;;

end;

procedure TForm1.BitBtn4Click(Sender: TObject);
begin
//tiomer:='';
maskedit2.text:=datetostr(date);
maskedit1.text:=timetostr(time);

maskedit2.Font.color:=clblack;
maskedit1.Font.color:=clblack;
edit1.Font.color:=clblack;
end;

procedure TForm1.BitBtn5Click(Sender: TObject);
var
f:textfile;
begin
assignfile(f,'soo.pat');
rewrite(f);
writeln(f,maskedit2.text);
writeln(f,maskedit1.text);
writeln(f,edit1.text);
closefile(f);

merd:=maskedit2.text;
mers:=maskedit1.text;

maskedit2.Font.color:=clgreen;
maskedit1.Font.color:=clgreen;
edit1.Font.color:=clgreen;
end;

procedure TForm1.BitBtn6Click(Sender: TObject);
begin
maskedit2.text:='';
maskedit1.text:='';
edit1.text:='';
end;

procedure TForm1.BitBtn7Click(Sender: TObject);
var
f:textfile;
begin
//maskedit1.text:=maskedit3.text;
//maskedit1.text:=timetostr(strtotime(maskedit3.text)+time);

assignfile(f,'soo.pat');
rewrite(f);
writeln(f,maskedit2.text);
writeln(f,maskedit1.text);
writeln(f,edit1.text);
closefile(f);

maskedit2.Font.color:=clgreen;
maskedit1.Font.color:=clgreen;
edit1.Font.color:=clgreen;



end;

end.


