Диплом: Автоматизация и обеспечение информационной безопасности делопроизводства в ООО МКО "ОКСУС"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
109
end;
end;
// Функция поиска записи по ключу (возвращает индекс);
function TConnectionList.Find (Key : Integer) : Integer;
var
//
CI : TConnectionInfo;
I : Integer;
begin
// По умолчанию результат функции "не найдено";
Result := c_NotFind;
// Перебираем список;
for I := 0 to FList.Count - 1 do
begin
//
CI := FList.Objects[I] as TConnectionInfo;
// Если ключ найден;
if CI.Key = Key then
begin
// Возвращаем индекс описателья;
Result := I;
// Выскакиваем из функции;
Exit;
end;
end;
110
end;
// Функция добавления в список записи;
function TConnectionList.AddConnection (Key : Integer) : TConnectionInfo;
var
//
CI : TConnectionInfo;
Index : Integer;
begin
//
Result := nil;
// Если такого ключа нет в списке, то создаём новый описатель с этим ключем;
if Find (Key) = c_NotFind then
begin
//
CI := TConnectionInfo.Create(Key);
FList.AddObject('', CI);
Result := CI;
Change;
end;
end;
// Функция получения записи по ключу;
function TConnectionList.GetConnectionKey (Key : Integer) : TConnectionInfo;
var
//
I : Integer;
111
CI : TConnectionInfo;
begin
//
Result := nil;
// Ищем описатель с указанным ключем;
I := Find(Key);
if I <> c_NotFind then
begin
// Возвращаем найденный описатель;
CI := FList.Objects[I] as TConnectionInfo;
Result := CI;
end;
end;
// Функция получения записи по индексу;
function TConnectionList.GetConnectionIndex (Index : Integer) : TConnectionInfo;
begin
//
Result := nil;
// Если индекс не выходит за пределы индексов списка, то возвращаем описатель;
if (Index >= 0) and (Index < FList.Count) then
begin
//
Result := FList.Objects[Index] as TConnectionInfo;
end;
end;
112
// Функция получения копии списка соединения;
function TConnectionList.GetList : TStrings;
begin
//
Result := TStringList.Create;
Result.AddStrings(FList);
end;
// Функция получения количества элементов в списке;
function TConnectionList.GetCount : Integer;
begin
//
Result := FList.Count;
end;
// Удаление элемента из списка;
procedure TConnectionList.DelConnection (Key : Integer);
var
//
I : Integer;
CI : TConnectionInfo;
begin
// Ищем элемент с указанным ключем;
I := Find(Key);
// Проверяем, нашла ли функция описатель с заданным ключем;
if I <> c_NotFind then
begin
113
// Возвращаем описатель;
CI := FList.Objects[I] as TConnectionInfo;
// Разрушаем его;
CI.Free;
// Удаляем запись из списка;
FList.Delete(I);
// Выполняем процедуру в OnChange;
Change;
end;
end;
procedure TConnectionList.ConnectionListOnChange (Sender : TObject);
var
//
I : Integer;
CI : TConnectionInfo;
begin
//
{
try
fMain.lbConnections.Items.Clear;
for I := 0 to FList.Count - 1 do
begin
//
CI := FList.Objects[I] as TConnectionInfo;
114
fMain.lbConnections.Items.Add ('Поток [' + IntToStr (CI.Key) + '], Время входа [' +
DateTimeToStr (CI.DateTime) + '], IP-адрес [' + CI.IP + ']');
end;
fMain.sbMain.Panels[1].Text := IntToStr (FList.Count);
except
end;
}
end;
initialization
ConnectionList := TConnectionList.Create;
finalization
ConnectionList.Free;
end.
unit ufAnalyserParams;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.DBCtrls;
type
TfAnalyserParams = class(TForm)
bOk: TButton;
bCancel: TButton;
DateTimePicker1: TDateTimePicker;
Label1: TLabel;
DateTimePicker2: TDateTimePicker;
115
Label2: TLabel;
eDaysCount: TEdit;
lDaysCount: TLabel;
eK: TEdit;
lK: TLabel;
lB: TLabel;
eB: TEdit;
Label3: TLabel;
dblcbDefect: TDBLookupComboBox;
procedure FormCreate(Sender: TObject);
procedure bOkClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
FDate1, FDate2 : TDateTime;
FDish, FDaysCount : Integer;
FK : Double;
FB : Double;
FDefectID : Integer;
public
{ Public declarations }
property Date1 : TDateTime read FDate1;
property Date2 : TDateTime read FDate2;
property DaysCount : Integer read FDaysCount;
property K : Double read FK;
116
property B : Double read FB;
property DefectID : Integer read FDefectID;
end;
var
fAnalyserParams: TfAnalyserParams;
implementation
{$R *.dfm}
uses udmData;
procedure TfAnalyserParams.bOkClick(Sender: TObject);
begin
//
FDate1 := DateTimePicker1.Date;
FDate2 := DateTimePicker2.Date;
if (VarIsNull(dblcbDefect.KeyValue) = true) then
raise Exception.Create('Необходимо выбрать неиспрваность');
FDefectID := dblcbDefect.KeyValue;
if (FDate1 >= FDate2) then
raise Exception.Create('Дата начала периода должна быть меньше даны окончания
периода');
try
//
FDaysCount := StrToInt (eDaysCount.Text);
if (FDaysCount <= 0) then
raise Exception.Create('Прогнозируемый период должен быть больше нуля');
117
except
//
raise Exception.Create('В поле "'+lDaysCount.Caption+'" может находиться только целое
положительное число');
Exit;
end;
try
//
FK := StrToFloat (eK.Text);
if (FK <= 0) or (FK >= 1) then
raise Exception.Create('Error Message');
except
//
raise Exception.Create('В поле "'+lK.Caption+'" может находиться вещественное
значение в интервале (0, 1)');
Exit;
end;
try
//
FB := StrToFloat (eB.Text);
if (FB <= 0) or (FB >= 1) then
raise Exception.Create('Error Message');
except
//
raise Exception.Create('В поле "'+lB.Caption+'" может находиться вещественное
значение в интервале (0, 1)');
118
Exit;
end;
ModalResult := mrOk;
end;
procedure TfAnalyserParams.FormCreate(Sender: TObject);
begin
//
FDefectID := 0;
FDate1 := Now - 30;
FDate2 := Now;
FDaysCount := 7;
FK := 0.6;
eK.Text := FloatToStr(FK);
FB := 0.7;
eB.Text := FloatToStr(FB);
eDaysCount.Text := IntToStr (FDaysCount);
DateTimePicker1.Date := FDate1;
DateTimePicker2.Date := FDate2;
end;
procedure TfAnalyserParams.FormKeyPress(Sender: TObject; var Key: Char);
begin
//
if (Key = #27) then Close;
end;
end.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)