- •Якименко Тетяна Миколаївна
- •Робота на здобуття освітньо-кваліфікаційного рівня Бакалавр
- •1.1 Середовище розробки програми
- •2.1 Постановка задачі
- •2.2 Програмна модель.
- •4.1 Загальні питання охорони праці на обчислювальному центрі
- •3.1 Інтерфейс
- •3.2 Створення інсталяції
- •3.3 Тестування програми.
- •4. Охорона праці
- •4.2 Електробезпека на обчислювальному центрі
- •4.3 Техніка безпеки при роботі з пристроєм
- •4.4 Виробнича санітарія
- •4.4.1 Розрахунок штучного освітлення
- •4.4.2 Розрахунок притоку свіжого повтря
- •4.5 Протипожежний захист
- •4.6 Охорона навколишнього середовища
4.4.2 Розрахунок притоку свіжого повтря
Розрахунок припливу свіжого повітря в машиний зал на ОЦУ приміщенні застосовується витяжна природна вентиляція, та кондеціонер. Хоча всієї цієї вентиляції недостатньо для приміщення (за ДСТ 12.1.005-76 необхідно 20 м3/чол). Потрібно поліпшити повітрообмін, наприклад, застосувати кондиціонери.
Джерелом шуму в приміщенні є механічні пристрої ЕОМ. Таким чином, шум на робочому місці не повинний перевищувати припустимих рівнів, значення яких приведені в ДСТ 12.1.003-83.
Розрахунок приводимо згідно з методики. Визначаю об’єм кімнати V, м3 за формулою:
V = s · h, (5.4)
Де s - площа; см2;
h - висота кімнати; см.
V = 30 · 3 = 90 м3,
Визначаю приток свіжого повітря Qп м3/год, в кімнату.
Qп = K · V, (5.5)
Де К - кратність повітрообміну-число,
V - об'єм машинної кімнати, м3;
Qn = 4 · 90 = 360 м3/год,
Подача повітря установкою кондиціонування Qk, м3/год, за результатами практичного досвіду приймається в 10-12 разів більше необхідного повітрообміну. Приймаємо в 10 разів.
Qk = (10 - 12) · Qn, (5.6)
де Qn - притік свіжого повітря.
Qk = 11 · 360 = 3960 м3/год,
Заданими розрахунку потрібен один кондиціонер ІКС-12А, подача повітря якого становить 2400м3/год, що задовольняє вимогам повітрообміну.
4.5 Протипожежний захист
Пожежа на виробництві може виникнути внаслідок причин неелектричного й електричного характеру. До причин неелектричного характеру відносяться:
халатне і необережне користування вогнем, паління, залишення без догляду нагрівальних приладів;
неправильна конструкція і несправність вентиляційної системи;
До причин електричного характеру відносяться:
коротке замикання;
перевантаження проводів;
великий перехідний опір;
іскріння;
статична електрика.
Пожежна безпека може бути забезпечена мірами пожежної профілактики й активним пожежним захистом.
Профілактичні методи боротьби з пожежами на ділянці передбачають:
організаційні: правильне додержання приміщень, протипожежний інструктаж службовців, видання наказів по питаннях посилення пожежної безпеки і т.д.
технічні: дотримання протипожежних правил, норм при проектуванні приміщень, при складанні електропроводів і устаткування, опалення, вентиляції, освітлення.
режимні: заборона паління в невстановлених місцях, виробництво пожежонебезпечних робіт у приміщенні.
експлуатаційні: своєчасні профілактичні огляди, ремонти устаткування.
При пожежі люди повинні залишити приміщення протягом мінімального часу. Число евакуаційних виходів з будинків, приміщень повинне складати не менш двох.
Для гасіння пожеж у приміщенні необхідно застосовувати вуглекислотні і порошкові вогнегасники, що мають високу швидкість гасіння, великий час дії, можливість гасіння електроустановок, високу ефективність боротьби з вогнем.
4.6 Охорона навколишнього середовища
Забруднення навколишнього середовища - це процес внесення в середовище або ж виникнення в ньому нових, зазвичай нехарактерних для нього фізичних, хімічних, біологічних агентів, які проявляють негативний вплив на живі та неживі об´єкти.
Забруднення можуть бути як природного, так і антропогенного походження.
Виділяють чотири типи забруднень: фізичні, хімічні, механічні та біологічні.
Фізичні забруднення - включають сонячну радіацію, електромагнітні випромінювання, шум, вібрацію, гравітаційні сили тощо.
Хімічні забруднення - бувають твердими, рідкими, газоподібними.
Механічне забруднення - це різного походження тверді відходи виробництва та побуту.
Біологічні забруднення - різноманітні організми (бактерії, мікроби, віруси, пилок, насінневий пух тощо).
Велике значення для оздоровлення атмосферного середовища мають заходи щодо очистки повітря та його охорони. Цим займаються у всіх високорозвинутих промислових країнах, де приймаються спеціальні закони та законодавчі акти державних як на загальнодержавному, так і на місцевому рівнях.
Атмосфера самоочищається від забруднення внаслідок осадження твердих частинок, вимивання їх з повітря опадами, а також розчиняючи краплями дощу й туману, водою морів, океанів, рік та інших водойм, розсіваючи в просторі.
Промислові підприємства забруднюють не лише зовнішнє, але й внутрішнє повітряне середовище виробничих цехів, зокрема повітря робочої зони. Оздоровлення повітряного середовища можна досягти шляхом зниження вмісту в ньому шкідливих речовин до без безпечного рівня, тобто такого, який би не перевищував ГДК для даної речовини.
Великої шкоди навколишньому природному середовищі завдає промисловий пил. Промисловий пил - це завислі у газовому середовищі частинки, що утворилися внаслідок механічного подрібнення твердих металів у порошковий стан.
Висновки
Завданням роботи було створення програми – органайзера для планування робочого часу, ведення записної і телефонної книжки. До складу додатка входять: калькулятор, записна книжка, годинник, календар, зручний у користуванні таймер. Також додатково модуль з такими функціями як : генератор паролів, гра тетріс та конвертатор зображень в ASCII код.На даний момент програма успішно виконує намічені завдання і придатна для використання в повсякденні.
Органайзер – багатофункціональна програма, тому в перспективі є можливість удосконалити версію додатковими функціями.
У ході виконання дипломної роботи я переконалася в широких можливостях мови програмування Delphi , підвищила рівень практичних навичок програмування в інтегрованому середовищі програмування Embarcadero Delphi XE5, отримала навички оформлення програмної документації.
Програма проста для розуміння і управління користувачем з мінімальним рівнем підготовки , займає мало місця на жорсткому диску , може працювати на комп'ютері з мінімальними вимогами. Зручний і зрозумілий інтерфейс дозволяє користуватися програмою будь-якій людині , хоча б віддалено знайомому з комп'ютером. Робота з програмою не вимагає спеціальних знань у галузі.
Створено інсталяцію, оптимізовану для розповсюдження на дисках та інших носіях. Під час написання також були вивчені теоретичні основи програмування , правила написання та оформлення програм. Підсумувавши все вищесказане можна сказати , що всі необхідні умови були виконані , програмний продукт готовий до використання і хоча даний додаток містить не так багато функцій , варто відзначити , що воно служить своєрідним каркасом для розробки і створення інших більш складних додатків.
Список використаної літератури
М. Фленов «Библия Delphi», С-Петербург, - «БХВ-Петербург», 2004.
Попов В.Б. «Паскаль и Дельфи. Самоучитель», - СПб.: Питер, 2004.
Шпак Ю. А. «Delphi 7 на примерах», - «Юниор», 2003.
http://delphiexpert.ru/book.php
http://programmersclub.ru
http://docwiki.embarcadero.com/RADStudio/XE6/en/Delphi_Reference
http://www.delphi.int.ru/
http://habrahabr.ru/
9. Денисенко А.Ф. Основы охраны труда: Конспект лекций в 2-х ч.
10. Лапин В.М. Безпека життєдіяльності людини. -К.: 1999.
11. Сайт: http://cityref.ru
12. Осипов Д.Л. Delphi. Программирование для Windows, OS X, iOS и Android СПб.: БХВ-Петербург, 2014. - 464 с.
13. Фаронов В.В. Delphi. Программирование на языке высокого уровня Питер, 2003 г. - 640 стр. ISBN 5-8046-0008-7.
Додатки
Лістинг програми
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ButtonGroup, Vcl.StdCtrls,
Vcl.ExtCtrls, Vcl.FileCtrl, Vcl.ComCtrls, Vcl.ToolWin, Vcl.ExtDlgs,
Vcl.ImgList, Vcl.Imaging.GIFImg, ClipBrd, Vcl.Buttons, Vcl.Imaging.pngimage,
Vcl.Grids, Vcl.Samples.Calendar, Vcl.AppEvnts, Vcl.Menus, Vcl.Samples.Spin, ShellApi,
Vcl.Imaging.jpeg, ShlObj, ActiveX, ComObj, Registry;
type
TForm1 = class(TForm)
TextEditorPanel: TPanel;
ToolBar1: TToolBar;
NewBtn: TToolButton;
OpenBtn: TToolButton;
SaveBtn: TToolButton;
SaveAsBtn: TToolButton;
ToolButton5: TToolButton;
ClearBtn: TToolButton;
FLB: TFileListBox;
Memo1: TMemo;
OTFD: TOpenTextFileDialog;
TBIL: TImageList;
ToolButton1: TToolButton;
ClpBrdCopy: TToolButton;
ClpBrdPaste: TToolButton;
ClpBrdCut: TToolButton;
SaveTD: TSaveTextFileDialog;
Add: TBitBtn;
Del: TBitBtn;
Refresh: TBitBtn;
Rename: TBitBtn;
CalcPanel: TPanel;
one: TSpeedButton;
two: TSpeedButton;
three: TSpeedButton;
seven: TSpeedButton;
six: TSpeedButton;
five: TSpeedButton;
four: TSpeedButton;
minus: TSpeedButton;
nine: TSpeedButton;
multiply: TSpeedButton;
plus: TSpeedButton;
decimal: TSpeedButton;
result: TSpeedButton;
divide: TSpeedButton;
percent: TSpeedButton;
Zero: TSpeedButton;
back: TSpeedButton;
radical: TSpeedButton;
plusminus: TSpeedButton;
C: TSpeedButton;
CE: TSpeedButton;
CalcEdit: TEdit;
wtf: TSpeedButton;
CalcHistory: TMemo;
Image1: TImage;
Image2: TImage;
DateTimePicker1: TDateTimePicker;
MainMenu1: TMainMenu;
N11: TMenuItem;
Timer1: TTimer;
ToolButton2: TToolButton;
Himage1: TImage;
Himage2: TImage;
Mimage1: TImage;
Mimage2: TImage;
eight: TSpeedButton;
PassGenPanel: TPanel;
PassGenSymbolPanel: TGroupBox;
PassGenLat: TCheckBox;
PassGenNumbers: TCheckBox;
PassGenSpecSymbols: TCheckBox;
PassGenRegPanel: TGroupBox;
UpReg: TRadioButton;
DownReg: TRadioButton;
UpDownReg: TRadioButton;
SpinEdit1: TSpinEdit;
StaticText1: TStaticText;
Button1: TButton;
PassGenSymbols: TLabeledEdit;
ImgToASCII: TSpeedButton;
Tetris: TSpeedButton;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
SlideImages: TImage;
Images: TImageList;
ExtraFunctions: TPanel;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
SITimer: TTimer;
TurnOff: TSpeedButton;
Reboot: TSpeedButton;
Hyber: TSpeedButton;
Say: TSpeedButton;
SPE: TSpinEdit;
StaticText2: TStaticText;
StaticText3: TStaticText;
TimerPanel: TPanel;
TimerImages: TImageList;
Timer: TTimer;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
NotifPanel: TPanel;
BitBtn1: TBitBtn;
Timer2: TTimer;
procedure FLBClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ClearBtnClick(Sender: TObject);
procedure NewBtnClick(Sender: TObject);
procedure SaveBtnClick(Sender: TObject);
procedure OpenBtnClick(Sender: TObject);
procedure SaveAsBtnClick(Sender: TObject);
procedure ClpBrdCopyClick(Sender: TObject);
procedure ClpBrdPasteClick(Sender: TObject);
procedure ClpBrdCutClick(Sender: TObject);
procedure FLBDblClick(Sender: TObject);
procedure RefreshClick(Sender: TObject);
procedure RenameClick(Sender: TObject);
procedure oneClick(Sender: TObject);
procedure twoClick(Sender: TObject);
procedure threeClick(Sender: TObject);
procedure fourClick(Sender: TObject);
procedure fiveClick(Sender: TObject);
procedure sixClick(Sender: TObject);
procedure sevenClick(Sender: TObject);
procedure eightClick(Sender: TObject);
procedure nineClick(Sender: TObject);
procedure ZeroClick(Sender: TObject);
procedure decimalClick(Sender: TObject);
procedure CEClick(Sender: TObject);
procedure CalcEditChange(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure minusClick(Sender: TObject);
procedure CClick(Sender: TObject);
procedure resultClick(Sender: TObject);
procedure wtfClick(Sender: TObject);
procedure backClick(Sender: TObject);
procedure percentClick(Sender: TObject);
procedure plusClick(Sender: TObject);
procedure plusminusClick(Sender: TObject);
procedure radicalClick(Sender: TObject);
procedure divideClick(Sender: TObject);
procedure multiplyClick(Sender: TObject);
procedure UpDownRegClick(Sender: TObject);
procedure DownRegClick(Sender: TObject);
procedure UpRegClick(Sender: TObject);
procedure PassGenLatClick(Sender: TObject);
procedure PassGenNumbersClick(Sender: TObject);
procedure PassGenSpecSymbolsClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ImgToASCIIClick(Sender: TObject);
procedure TetrisClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure SlideImagesClick(Sender: TObject);
procedure SITimerTimer(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure TurnOffClick(Sender: TObject);
procedure RebootClick(Sender: TObject);
procedure HyberClick(Sender: TObject);
procedure SayClick(Sender: TObject);
procedure TimerTimer(Sender: TObject);
procedure SPEChange(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure CreateShotCut(SourceFile, ShortCutName, SourceParams: String);
public
{ Public declarations }
end;
var
Form1: TForm1;
way:string;
//калькулятор
Calculator: TForm1;
x,rrly,y,otv,mem:real;ard,ard2,bf:real;
//генератор паролей
lat,biglat,cif,symb:string;
//текст для заметки
notif:string;
implementation
{$R *.dfm}
//Подключение других форм
Uses Unit2, Unit3, Unit4, MainFormUnit, Tetris, Unit5, ABOUT;
procedure TForm1.backClick(Sender: TObject);
var ds:string;
begin
if (bf=0) then begin
ds:=calcedit.text;
if length(calcedit.text)=1 then
calcedit.text:='0' else begin
delete(ds,length(calcedit.text),1);
calcedit.text:=ds;end;end;
end;
procedure TForm1.CalcEditChange(Sender: TObject);
begin
if calcedit.Text='' then calcedit.Text:='0';
end;
procedure TForm1.CClick(Sender: TObject);
var abcd:integer;
begin
x:=0;y:=0;ard:=0;ard2:=0;bf:=0;calcedit.text:='0';
abcd:=1;
for abcd := 0 to 10 do
CalcHistory.clear;
end;
procedure TForm1.CEClick(Sender: TObject);
begin
calcedit.Text:='0';
end;
procedure TForm1.ClearBtnClick(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm1.ClpBrdCopyClick(Sender: TObject);
begin
Clipboard.AsText:=Memo1.SelText;
end;
procedure TForm1.ClpBrdCutClick(Sender: TObject);
begin
Clipboard.AsText:=Memo1.SelText;
Memo1.SelText:='';
end;
procedure TForm1.ClpBrdPasteClick(Sender: TObject);
begin
Memo1.SelText:=Clipboard.AsText;
end;
procedure TForm1.decimalClick(Sender: TObject);
var i,zi:integer;
begin
if bf=1 then
calcedit.text:=('0,') else begin
for i:=1 to length(calcedit.text) do
if calcedit.text[i]=(',') then zi:=1;
if zi<>1 then
calcedit.text:=calcedit.text+(',');end;bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+','
end;
procedure TForm1.divideClick(Sender: TObject);
begin
if ard>0 then begin
x:=StrToFloat(calcedit.text);
if ard=1 then
otv:=y+x;
if ard=2 then
otv:=y-x;
if ard=3 then
otv:=y*x;
if ard=4 then
otv:=y/x;
if ard=5 then
otv:=y/100*x;
ard:=3;y:=otv;calcedit.text:=FloatToStr(otv);bf:=1;end else
y:=StrToFloat(calcedit.text);
ard:=4;bf:=1;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'/'
end;
procedure TForm1.eightClick(Sender: TObject);
begin
if bf=1 then
calcedit.Text:=IntToStr(8) else
if calcedit.Text=IntToStr(0) then calcedit.Text:=IntToStr(8) else
calcedit.Text:=calcedit.Text+IntToStr(8);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'8';
end;
procedure TForm1.fiveClick(Sender: TObject);
begin
if bf=1 then
calcedit.text:=IntToStr(5) else
if calcedit.text=IntToStr(0) then calcedit.text:=IntToStr(9) else
calcedit.text:=calcedit.text+IntToStr(5);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'5';
end;
procedure TForm1.FLBClick(Sender: TObject);
begin
if FileExists(FLB.FileName) then begin
memo1.Lines.LoadFromFile(FLB.FileName);
way:=Flb.FileName;
end;
end;
procedure TForm1.FLBDblClick(Sender: TObject);
begin
DeleteFile(FLB.FileName);
FLB.Update;
end;
procedure TForm1.FormCreate(Sender: TObject);
var myHour, myMin, mySec, myMilli : Word;
begin
DateTimePicker1.DateTime:=strtodate(FormatDateTime('dd.mm.yyyy',Now));
Form1.Width:=645;
//вставка картинки в правый нижний угол
CreateDir(getcurrentdir+'\Docs');
CreateDir(getcurrentdir+'\Docs\Notifications\');
FLB.Directory:=getcurrentdir+('\'+'Docs');
//предзагрузка часов
DecodeTime(Time, myHour, myMin, mySec, myMilli);
Himage1.Picture.LoadFromFile(getcurrentdir+'\Images\Clock\clock_'+inttostr(myHour div 10)+'.png');
Himage2.Picture.LoadFromFile(getcurrentdir+'\Images\Clock\clock_'+inttostr(myHour mod 10)+'.png');
Mimage1.Picture.LoadFromFile(getcurrentdir+'\Images\Clock\clock_'+inttostr(myMin div 10)+'.png');
Mimage2.Picture.LoadFromFile(getcurrentdir+'\Images\Clock\clock_'+inttostr(myMin mod 10)+'.png');
//заполнение картинками кнопок таймера
TimerImages.GetBitmap(0, TurnOff.Glyph);
TimerImages.GetBitmap(1, Reboot.Glyph);
TimerImages.GetBitmap(2, Hyber.Glyph);
TimerImages.GetBitmap(3, Say.Glyph);
//Напоминание
//проверка на наличие файла
if FileExists(FLB.Directory+'\Notifications\'+FormatDateTime('dd.mm.yyyy',Now)+'.rtf') then Timer2.Enabled:=True;
end;
procedure TForm1.fourClick(Sender: TObject);
begin
if bf=1 then
calcedit.text:=IntToStr(4) else
if calcedit.text=IntToStr(0) then calcedit.text:=IntToStr(4) else
calcedit.text:=calcedit.text+IntToStr(4);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'4';
end;
procedure TForm1.HyberClick(Sender: TObject);
begin
Timer.Enabled:=True;
end;
procedure TForm1.ImgToASCIIClick(Sender: TObject);
begin
alphablendvalue:=0;
MainForm.Show;
end;
procedure TForm1.minusClick(Sender: TObject);
begin
if ard>0 then begin
x:=StrToFloat(calcedit.text);
if ard=1 then
otv:=y+x;
if ard=2 then
otv:=y-x;
if ard=3 then
otv:=y*x;
if ard=4 then
otv:=y/x;
if ard=5 then
otv:=y/100*x;
ard:=2;y:=otv;calcedit.text:=FloatToStr(otv);bf:=1;end else
y:=StrToFloat(calcedit.text);
ard:=2;bf:=1;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'-'
end;
procedure TForm1.multiplyClick(Sender: TObject);
begin
if ard>0 then begin
x:=StrToFloat(calcedit.text);
if ard=1 then
otv:=y+x;
if ard=2 then
otv:=y-x;
if ard=3 then
otv:=y*x;
if ard=4 then
otv:=y/x;
if ard=5 then
otv:=y/100*x;
ard:=3;y:=otv;calcedit.text:=FloatToStr(otv);bf:=1;end else
y:=StrToFloat(calcedit.text);
ard:=3;bf:=1;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'*'
end;
//активация доп. функций
procedure TForm1.N2Click(Sender: TObject);
begin
AboutBox.Show;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.N5Click(Sender: TObject);
Var k:integer;
begin
ExtraFunctions.Visible:=True;
SItimer.Enabled:=True;
Form1.Width:=812; //увеличение размеров главного окна
//заполнение переменных для генератора паролей
biglat:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
lat:='abcdefghijklmnopqrstuvwxyz';
cif:='1234567890';
symb:='!@#$%^&*()"''\\/|~`?<>,.;:[]';
k:=random(166);
Images.GetBitmap(k, SlideImages.Picture.Bitmap);
end;
procedure TForm1.N6Click(Sender: TObject);
begin
SITimer.Enabled:=False;
ExtraFunctions.Visible:=False;
Form1.Width:=645; //увеличение размеров главного окна
end;
procedure TForm1.NewBtnClick(Sender: TObject);
var number:integer; a:textfile;
begin
randomize;
number:=random(65535);
AssignFile(a, FLB.Directory+'\'+'NewFile'+inttostr(number)+'.txt');
Rewrite(a);
CloseFile(a);
FLB.Update;
end;
procedure TForm1.OpenBtnClick(Sender: TObject);
begin
if OTFD.execute then begin
memo1.Lines.LoadFromFile(OTFD.FileName);
way:=OTFD.FileName;
end;
end;
procedure TForm1.percentClick(Sender: TObject);
begin
if ard>0 then begin
x:=StrToFloat(calcedit.text);
if ard=1 then
otv:=y+x;
if ard=2 then
otv:=y-x;
if ard=3 then
otv:=y*x;
if ard=4 then
otv:=y/x;
if ard=5 then
otv:=y/100*x;
ard:=4;y:=otv;calcedit.text:=FloatToStr(otv);bf:=1;end else
y:=StrToFloat(calcedit.text);
ard:=4;bf:=1;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'%='+calcedit.text+'; ';
end;
procedure TForm1.plusClick(Sender: TObject);
begin
if ard>0 then begin
x:=StrToFloat(calcedit.text);
if ard=1 then
otv:=y+x;
if ard=2 then
otv:=y-x;
if ard=3 then
otv:=y*x;
if ard=4 then
otv:=y/x;
if ard=5 then
otv:=y/100*x;
ard:=1;y:=otv;calcedit.text:=FloatToStr(otv);bf:=1;end else
y:=StrToFloat(calcedit.text);
ard:=1;bf:=1;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'+'
end;
procedure TForm1.plusminusClick(Sender: TObject);
var ds:string;
begin
ds:=calcedit.text;
if ds<>'0' then begin
if calcedit.text[1]='-' then begin
delete(ds,1,1);calcedit.text:=ds;end else begin
calcedit.text:='-'+ds;bf:=1;end;
end;
end;
procedure TForm1.radicalClick(Sender: TObject);
begin
if StrToFloat(calcedit.text)<0 then
calcedit.text:='Недопустимый ввод' else
calcedit.text:=FloatToStr(sqrt(StrToFloat(calcedit.text)));bf:=1;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'√'
end;
procedure TForm1.RebootClick(Sender: TObject);
begin
Timer.Enabled:=True;
end;
procedure TForm1.RefreshClick(Sender: TObject);
begin
FLB.Update;
end;
procedure TForm1.RenameClick(Sender: TObject);
var nn:string;
begin
if flb.FileName <>'' then
begin
nn:=InputBox('Переименование','Введите новое имя файла','');
if nn<>'' then RenameFile(FLB.FileName,nn+'.txt');
flb.Update
end
else showmessage ('Не выбран файл для переименования');
end;
procedure TForm1.resultClick(Sender: TObject);
begin
otv:=StrToFloat(calcedit.text);
if ard=0 then begin
y:=StrToFloat(calcedit.text);
if ard2=1 then
otv:=y+x;
if ard2=2 then
otv:=y-x;
if ard2=3 then
otv:=y*x;
if ard2=4 then
otv:=y/x;
if ard=5 then
otv:=y/100*x;
end
else begin
x:=StrToFloat(calcedit.text);
if ard=1 then
otv:=y+x;
if ard=2 then
otv:=y-x;
if ard=3 then
otv:=y*x;
if ard=4 then
otv:=y/x;
if ard=5 then
otv:=y/100*x;
ard2:=ard;ard:=0;end;
calcedit.text:=FloatToStr(otv);bf:=1;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'='+FloatToStr(otv)+'; ';
end;
procedure TForm1.SaveAsBtnClick(Sender: TObject);
begin
if SaveTd.Execute then memo1.Lines.SaveToFile(SaveTD.FileName);
end;
//ЧАСЫ!!!
procedure TForm1.Timer1Timer(Sender: TObject);
var
myHour, myMin, mySec, myMilli : Word;
Begin
DecodeTime(Time, myHour, myMin, mySec, myMilli);
Himage1.Picture.LoadFromFile(FLB.Directory+'\Images\Clock\clock_'+inttostr(myHour div 10)+'.png');
Himage2.Picture.LoadFromFile(FLB.Directory+'\Images\Clock\clock_'+inttostr(myHour mod 10)+'.png');
Mimage1.Picture.LoadFromFile(FLB.Directory+'\Images\Clock\clock_'+inttostr(myMin div 10)+'.png');
Mimage2.Picture.LoadFromFile(FLB.Directory+'\Images\Clock\clock_'+inttostr(myMin mod 10)+'.png');
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Timer2.Enabled:=False;
Form5.Panel1.Visible:=False;
Form5.ShowModal;
Form5.Editor.Lines.LoadFromFile(FLB.Directory+'\Notifications\'+datetostr(DateTimePicker1.DateTime)+'.rtf');
end;
procedure TForm1.TimerTimer(Sender: TObject);
begin
StaticText2.Caption:='Осталось ';
Timer.Interval:=60000;
TurnOff.Enabled:=False;
Reboot.Enabled:=False;
Hyber.Enabled:=False;
Say.Enabled:=False;
SPE.Enabled:=False;
if SPE.Value = 0 then
begin
if TurnOff.Down=True then ShellExecute(handle, nil,'shutdown',' /s /f /t 00','', SW_SHOWNORMAL);
if Reboot.Down=True then ShellExecute(handle, nil,'shutdown',' /r /f /t 00','', SW_SHOWNORMAL);
if Hyber.Down=True then ShellExecute(handle, nil,'shutdown',' /s /hybrid /f /t 00','', SW_SHOWNORMAL);
if Say.Down=True then
begin
ShowMessage(notif);
Timer.Enabled:=False;
Say.Down:=False;
TurnOff.Enabled:=True;
Reboot.Enabled:=True;
Hyber.Enabled:=True;
Say.Enabled:=True;
SPE.Enabled:=True;
Timer.Interval:=10;
StaticText2.Caption:='Таймер на';
end;
end
else SPE.Value:=SPE.Value-1;
end;
procedure TForm1.ToolButton2Click(Sender: TObject);
Var pass: string;
begin
{pass:=InputBox('Шифрование','Введите пароль.'+#13'Можно использовать любые символы!','');
if pass <> '' then Memo1.Text:= Crypt (Memo1.Text, pass, false); }
Form2.ShowModal;
end;
procedure TForm1.TurnOffClick(Sender: TObject);
begin
Timer.Enabled:=True;
end;
procedure TForm1.SaveBtnClick(Sender: TObject);
begin
memo1.Lines.SaveToFile(way);
end;
procedure TForm1.SayClick(Sender: TObject);
begin
notif:= InputBox('Напоминание','Введите текст напоминания','');
Timer.Enabled:=True;
end;
procedure TForm1.sevenClick(Sender: TObject);
begin
if bf=1 then
calcedit.text:=IntToStr(7) else
if calcedit.text=IntToStr(0) then calcedit.text:=IntToStr(9) else
calcedit.text:=calcedit.text+IntToStr(7);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'7';
end;
procedure TForm1.SITimerTimer(Sender: TObject);
Var k:byte;
begin
randomize ();
k:=random(166);
Images.GetBitmap(k, SlideImages.Picture.Bitmap);
SlideImages.Refresh;
end;
procedure TForm1.sixClick(Sender: TObject);
begin
if bf=1 then
calcedit.text:=IntToStr(6) else
if calcedit.text=IntToStr(0) then calcedit.text:=IntToStr(9) else
calcedit.text:=calcedit.text+IntToStr(6);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'6';
end;
procedure TForm1.SlideImagesClick(Sender: TObject);
Var i:byte;
begin
i:=random (166);
Images.GetBitmap(i, SlideImages.Picture.Bitmap);
SlideImages.Refresh;
end;
procedure TForm1.SPEChange(Sender: TObject);
begin
if SPE.Value < 0 then begin
SPE.Value:=0;
ShowMessage('Недопустимое значение, нельзя выставить значение меньшее чем ноль');
end;
end;
procedure TForm1.TetrisClick(Sender: TObject);
begin
alphablendvalue:=0;
BlockForm.Show;
end;
procedure TForm1.threeClick(Sender: TObject);
begin
if bf=1 then
calcedit.text:=IntToStr(3) else
if calcedit.text=IntToStr(0) then calcedit.text:=IntToStr(3) else
calcedit.text:=calcedit.text+IntToStr(3);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'3';
end;
procedure TForm1.twoClick(Sender: TObject);
begin
if bf=1 then
calcedit.text:=IntToStr(2) else
if calcedit.text=IntToStr(0) then calcedit.text:=IntToStr(2) else
calcedit.text:=calcedit.text+IntToStr(2);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'2';
end;
procedure TForm1.wtfClick(Sender: TObject);
begin
if StrToFloat(calcedit.text)=0 then
calcedit.text:='Деление на ноль невозможно' else
calcedit.text:=FloatToStr(1/StrToFloat(calcedit.text));bf:=1;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'1/'+floattostr(1/StrToFloat(calcedit.text))+
'='+calcedit.text+'; ';
end;
procedure TForm1.ZeroClick(Sender: TObject);
begin
if bf=1 then
calcedit.text:=IntToStr(0) else
if calcedit.text=IntToStr(0) then calcedit.text:=IntToStr(0) else
calcedit.text:=calcedit.text+IntToStr(0);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'0'
end;
procedure TForm1.nineClick(Sender: TObject);
begin
if bf=1 then
calcedit.text:=IntToStr(9) else
if calcedit.text=IntToStr(0) then calcedit.text:=IntToStr(9) else
calcedit.text:=calcedit.text+IntToStr(9);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'9';
end;
procedure TForm1.oneClick(Sender: TObject);
begin
if bf=1 then
calcedit.text:=IntToStr(1) else
if calcedit.text=IntToStr(0) then calcedit.text:=IntToStr(1) else
calcedit.text:=calcedit.text+IntToStr(1);bf:=0;
CalcHistory.Lines[0]:=CalcHistory.Lines[0]+'1';
end;
//запуск генератора
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form5.Panel1.Visible:=True;
Form5.ShowModal;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i,k:integer;
pass,resx:string;
len:integer;
begin
pass:='';
randomize;
resx:=PassGenSymbols.Text;
len:=SpinEdit1.Value;
if resx <> '' then
begin
for i:=1 to len do
pass:=pass+resx[random(length(resx)+1)+1];
if InputQuery('Успех!!!','Ваш пароль:', pass)
then begin
Clipboard.AsText:=pass;
showmessage('Пароль скопирован в буфер обмена!'+#13+'Прощайте!');
close; end;
end
else
MessageDlg('Вы не выбрали состав пароля',mtWarning, [mbOK], 0);
end;
//управление регистрами
procedure TForm1.UpDownRegClick(Sender: TObject);
begin
if updownreg.Checked=true then
begin
upreg.Checked:=false;
downreg.Checked:=false;
passgenlat.checked:=false;
passgenlat.checked:=true;
end;
end;
procedure TForm1.UpRegClick(Sender: TObject);
begin
if upreg.Checked=true then
begin
updownreg.Checked:=false;
downreg.Checked:=false;
passgenlat.checked:=false;
passgenlat.checked:=true;
end;
end;
procedure TForm1.DownRegClick(Sender: TObject);
begin
if downreg.Checked=true then
begin
upreg.Checked:=false;
updownreg.Checked:=false;
passgenlat.checked:=false;
passgenlat.checked:=true;
end;
end;
//управление символами
//латиница
procedure TForm1.PassGenLatClick(Sender: TObject);
begin
if passgenlat.Checked=true then
begin
passgenregpanel.Enabled:=true;
if upreg.Checked=true then
passgensymbols.Text:=passgensymbols.Text+biglat
else if downreg.Checked=true then
passgensymbols.Text:=passgensymbols.Text+lat
else passgensymbols.Text:=passgensymbols.Text+lat+biglat
end
else begin
passgensymbols.Text:='';
if PassGenNumbers.checked=true then passgensymbols.Text:=passgensymbols.Text+cif;
if PassGenSpecSymbols.checked=true then passgensymbols.Text:=passgensymbols.Text+symb;
end;
end;
//цифры
procedure TForm1.PassGenNumbersClick(Sender: TObject);
begin
if PassGenNumbers.checked=true then passgensymbols.Text:=passgensymbols.Text+cif
else
begin
passgensymbols.Text:='';
if PassGenLat.checked=true then
begin
PassGenLat.checked:=false; PassGenLat.checked:=true;
end;
if PassGenSpecSymbols.checked=true then passgensymbols.Text:=passgensymbols.Text+symb;
end;
end;
//специальные символы
procedure TForm1.PassGenSpecSymbolsClick(Sender: TObject);
begin
if PassGenSpecSymbols.checked=true then passgensymbols.Text:=passgensymbols.Text+symb
else begin
passgensymbols.Text:='';
if PassGenLat.checked=true then
begin
PassGenLat.checked:=false; PassGenLat.checked:=true;
end;
if PassGenNumbers.checked=true then passgensymbols.Text:=passgensymbols.Text+cif;
end;
end;
//Автозагрузка
procedure TForm1.CreateShotCut(SourceFile, ShortCutName,
SourceParams: String);
var
IUnk: IUnknown;
ShellLink: IShellLink;
ShellFile: IPersistFile;
tmpShortCutName: string;
WideStr: WideString;
i: Integer;
begin
IUnk := CreateComObject(CLSID_ShellLink);
ShellLink := IUnk as IShellLink;
ShellFile := IUnk as IPersistFile;
ShellLink.SetPath(PChar(SourceFile));
ShellLink.SetArguments(PChar(SourceParams));
ShellLink.SetWorkingDirectory(PChar(ExtractFilePath(SourceFile)));
ShortCutName := ChangeFileExt(ShortCutName,'.lnk');
if fileexists(ShortCutName) then
begin
ShortCutName := copy(ShortCutName,1,length(ShortCutName)-4);
i := 1;
repeat
tmpShortCutName := ShortCutName +'(' + inttostr(i)+ ').lnk';
inc(i);
until not fileexists(tmpShortCutName);
WideStr := tmpShortCutName;
end
else
WideStr := ShortCutName;
ShellFile.Save(PWChar(WideStr),False);
end;
//Включение
procedure TForm1.N8Click(Sender: TObject);
var
reg: TRegistry;
begin
reg:= TRegistry.create;
reg.rootkey:=HKEY_CURRENT_USER;
reg.lazywrite:= false;
reg.openkey('software\microsoft\windows\currentversion\run', false);
reg.writestring('GOrganizer', application.exename); //записываем в автозапуск
reg.Free;
end;
//Выключение
procedure TForm1.N9Click(Sender: TObject);
var
reg: TRegistry;
begin
reg:= TRegistry.create;
reg.rootkey:=HKEY_CURRENT_USER;
reg.lazywrite:= false;
reg.openkey('software\microsoft\windows\currentversion\run', false);
reg.DeleteValue('GOrganizer'); //удаляем ключ реестра
reg.Free;
end;
end.
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, unit1, Vcl.StdCtrls, Vcl.ExtCtrls,
Vcl.Buttons, Vcl.Imaging.pngimage;
type
TForm2 = class(TForm)
RB1: TRadioButton;
RB2: TRadioButton;
GroupBox1: TGroupBox;
Pass: TLabeledEdit;
Button1: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Image1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
//Функция выполнения криптографии
Function Crypt (Text, Key: String; Encode: Boolean): String;
Var
I, KeyLength: integer;
Sign: ShortInt;
Begin
KeyLength:=Length (Key);
If Encode then Sign:=-1 else Sign:=1; //шифровать или расшифровывать?
For I:=1 to Length (Text) do
//код символа исходного текста складывается с кодом символа ключа
//пароль при этом умножается
Text[I]:=Chr (ord (Text[I]) +Sign*ord (Key[I mod KeyLength+1]));
//результат
Result:=Text;
End;
//*******************************
procedure TForm2.Button1Click(Sender: TObject);
begin
if pass.Text <> '' then
begin
if rb1.Checked=true then
form1.Memo1.Text:= Crypt (form1.Memo1.Text, Pass.Text, true)
else form1.Memo1.Text:= Crypt (form1.Memo1.Text, Pass.Text, false)
end
else messagedlg('Необходимо ввести проль',mtwarning,[mbOk],0)
end;
procedure TForm2.Image1Click(Sender: TObject);
begin
close;
end;
end.
unit Unit5;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ExtCtrls,
Vcl.ComCtrls, System.Actions, Unit1;
type
TForm5 = class(TForm)
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Editor: TRichEdit;
OpenDialog: TOpenDialog;
FontDialog: TFontDialog;
procedure SpeedButton1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
function CurrText: TTextAttributes;
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
if opendialog.Execute then Editor.Lines.LoadFromFile(OpenDialog.FileName);
end;
procedure TForm5.BitBtn2Click(Sender: TObject);
begin
FontDialog.Font.Assign(Editor.SelAttributes);
if FontDialog.Execute then
CurrText.Assign(FontDialog.Font);
Editor.SetFocus;
end;
procedure TForm5.BitBtn3Click(Sender: TObject);
begin
Editor.Lines.SaveToFile(Form1.FLB.Directory+'\Notifications\'+datetostr(Form1.DateTimePicker1.DateTime)+'.rtf');
ShowMessage('Напоминание успешно создано');
close;
end;
procedure TForm5.SpeedButton1Click(Sender: TObject);
begin
close;
end;
function TForm5.CurrText: TTextAttributes;
begin
if Editor.SelLength > 0 then Result := Editor.SelAttributes
else Result := Editor.DefAttributes;
end;
procedure TForm5.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Panel1.Visible:=True;
end;
end.
