end;
|
|
|
|
|
|
|
procedure InitEverything;
var i:integer;
begin
//Network
net.connected:=false;
net.timeto:=0;
net.forevertime:=false;
cs:=DG_NULL;
//Variables
echocame:=false;
timetodelay:=0;
quiting:=false;
cancloseform:=false;
//Application routines
application.ondeactivate:=form1.appondeactivate;
form1.timer.interval:=ZSHELL_TIMERSEC;
form1.timer.enabled:=true;
//Loading options
try
loadzoptions(path+'ZShell.ini');
except
showmessage('Ошибка загрузки установок шелла')
end;
//Loading time
try
if cl_networkon then loadtimefromfile;
except
showmessage('Ошибка загрузки оставшегося времени')
end;
//Creating buttons
try
for i:=numbuttons downto 1 do
createbutton(i);
except
showmessage('Ошибка создания кнопок')
end;
//Loading icons
try
for i:=1 to numbuttons do
loadiconto(i,false);
except
showmessage('Ошибка загрузки иконки для кнопки')
end;
//Other
for i:=1 to numbuttons do
if (i mod BNUMINROW)=0 then buttons[i].wrap:=true
else buttons[i].wrap:=false;
if numbuttons>2*BNUMINROW then
form1.toolbar.height:=form1.toolbar.height+ROWPIXELS*(((numbuttons-2*BNUMINROW-1) div BNUMINROW)+1);
form1.clientheight:=form1.toolbar.height;
form1.clientwidth:=form1.toolbar.width;
form1.toolbar.visible:=true;
//Save processes or restore flushed
numpcs:=0;
numaprocesses:=0;
//Caching all existing processes
try
for i:=1 to MAXNUMPROCESSES do begin
pcs[i].handle:=0;
pcs[i].pcopfiles:=nil
end;
if cl_networkon then begin
completesavedprocesses;
restoreflushedprocesses
end;
deleteupdatefiles;
//Hook Explorer
nullexplorers;
if zoptions.exploreroff then saveexplorers
except
showmessage('Ошибка при создании списка процессов')
end;
//Core work to hide shell
try
hideme;
trap;
form1.bordericons:=[];
except
showmessage('Ошибка при интеграции шелла с Windows')
end;
//
form1.caption:=composewinname;
if not cl_networkon then begin
form1.mitime.visible:=false;
form1.minet.visible:=false
end;
//Timer that looks for socket events
//and new explorers
form1.tmSockets.Interval:=SOCKETS_READ_MSEC;
form1.tmSockets.enabled:=true;
//Init network
if cl_networkon then startnetwork
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
initeverything
end;
procedure TForm1.TBClick(Sender: TObject);
var ind:word;
begin
ind:=0;
repeat
inc(ind)
until buttons[ind]=sender;
if copyreference<>pgs[ind].name then deletecopied;
if pgs[ind].itstype=TB_FILE then PressedFile(ind);
if pgs[ind].itstype=TB_FOLDER then PressedFolder(ind);
if pgs[ind].itstype=TB_ADMIN then PressedAdmin(ind)
end;
procedure TForm1.TimerTimer(Sender: TObject);
var stcomm:string;
delfiles:boolean;
datetime:tdatetime;
i:word;
begin
if quiting then exit;
//Check echo
if (not echocame)and(net.connected) then breakconnection
else echocame:=false;
//Not connected, so connect
if (cl_networkon)and(not net.connected) then begin
connectsocket
end;
//Check for time
if cl_networkon then begin
if (net.timeto<=now)and(net.timeto>0) then begin
net.timeto:=0;
savetimetofile;
if (not net.forevertime) then transmit(COMM_READY)
end
end;
//Check closed processes
CheckClosedProcesses(false);
//Update face and icons if needed
for i:=1 to numbuttons do
loadiconto(i,true);
setcaption;
//Check for license setup
stcomm:=readlicense;
readdate(stcomm,delfiles,datetime);
if datetime<>0 then begin
actionlicense(delfiles,datetime)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.