Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Implementation 1 страница

Читайте также:
  1. Contents 1 страница
  2. Contents 10 страница
  3. Contents 11 страница
  4. Contents 12 страница
  5. Contents 13 страница
  6. Contents 14 страница
  7. Contents 15 страница

uses main, Section, Tabl_1, Tabl_2, Tabl_3, Tabl_4, Tabl_5,

Tabl_6, Tabl_7, Tabl_8, Tabl_9, PrnGridUnit, Programm, ShellAPI;

{***** При изменении размеров формы ****}

procedure TForm4.FormResize(Sender: TObject);

Begin

Panel1.Width:= Form4.Width - 100;

Panel1.Height:= Form4.Height - 150;

Panel1.Top:= ActionMainMenuBar1.Height + ActionMainMenuBar2.Height + 43;

Label6.Top:= ActionMainMenuBar1.Height + ActionMainMenuBar2.Height + 13;

Edit1.Top:= ActionMainMenuBar1.Height + ActionMainMenuBar2.Height + 13;

StringGrid1.Width:= Panel1.Width;

StringGrid1.Height:= Panel1.Height;

StringGrid1.ColWidths[0]:= Trunc(StringGrid1.Width * 0.60);

StringGrid1.ColWidths[1]:= Trunc(StringGrid1.Width * 0.10);

StringGrid1.ColWidths[2]:= StringGrid1.ColWidths[1];

StringGrid1.ColWidths[3]:= StringGrid1.ColWidths[1];

end;

{**** Появление формы ****}

procedure TForm4.FormCreate(Sender: TObject);

Var

i, j: Byte;

Begin

// При изменении размеров формы

Panel1.Width:= Form4.Width - 100;

Panel1.Height:= Form4.Height - 150;

Panel1.Top:= ActionMainMenuBar1.Height + ActionMainMenuBar2.Height + 43;

Label6.Top:= ActionMainMenuBar1.Height + ActionMainMenuBar2.Height + 13;

Edit1.Top:= ActionMainMenuBar1.Height + ActionMainMenuBar2.Height + 13;

StringGrid1.Width:= Panel1.Width;

StringGrid1.Height:= Panel1.Height;

StringGrid1.ColWidths[0]:= Trunc(StringGrid1.Width * 0.60);

StringGrid1.ColWidths[1]:= Trunc(StringGrid1.Width * 0.10);

StringGrid1.ColWidths[2]:= StringGrid1.ColWidths[1];

StringGrid1.ColWidths[3]:= StringGrid1.ColWidths[1];

Shapka; // заполняем шапку таблицы

end;

{***** Проверка таблицы, едита и равенство АКТИВ = ПАССИВУ *****}

procedure TForm4.Proverka;

Var

i, j, m, a, b, k, g: Byte;

ch: Double;

Begin

prov:= True; // начальное значение prov - разрешаем выполнять алгоритм

{===== ПРОВЕРКА ТАБЛИЦЫ И ЕДИТА (едит в проверке #7) ====}

 

for i:= 1 to 3 do // всего 3 года

Begin

{____ выполнять проверку для алгоритма #1 ____}

if knop = 1 then

for m:= 1 to 13 do // всего 13 "отрезков" нужных для данного алгоритма заполнений в таблице

Begin

// a - первая строка, b - последняя строка

if m = 1 then begin a:= 4; b:= 7; end;

if m = 2 then begin a:= 9; b:= 11; end;

if m = 3 then begin a:= 13; b:= 14; end;

if m = 4 then begin a:= 16; b:= 20; end;

if m = 5 then begin a:= 23; b:= 27; end;

if m = 6 then begin a:= 30; b:= 36; end;

if m = 7 then begin a:= 38; b:= 40; end;

if m = 8 then begin a:= 42; b:= 44; end;

if m = 9 then begin a:= 47; b:= 48; end;

if m = 10 then begin a:= 50; b:= 51; end;

if m = 11 then begin a:= 55; b:= 57; end;

if m = 12 then begin a:= 60; b:= 61; end;

if m = 13 then begin a:= 63; b:= 72; end;

for j:= a to b do // строчки

Begin

// чтобы не была ячейка пустой

if (StringGrid1.Cells[i, j] = '') then

Begin

ShowMessage('Обнаружена пустая ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

// чтобы в ячейке было число, а не что-то другое

if not Trystrtofloat(StringGrid1.Cells[i, j], ch) then

Begin

ShowMessage('Обнаружена некорректно заполненная ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

end;

end;

{____ выполнять проверку для алгоритма #2 ____}

if knop = 2 then

for m:= 1 to 10 do // всего 10 "отрезков" нужных для данного алгоритма заполнений в таблице

Begin

// a - первая строка, b - последняя строка

if m = 1 then begin a:= 4; b:= 7; end;

if m = 2 then begin a:= 9; b:= 11; end;

if m = 3 then begin a:= 13; b:= 14; end;

if m = 4 then begin a:= 16; b:= 20; end;

if m = 5 then begin a:= 23; b:= 27; end;

if m = 6 then begin a:= 30; b:= 36; end;

if m = 7 then begin a:= 38; b:= 40; end;

if m = 8 then begin a:= 42; b:= 44; end;

if m = 9 then begin a:= 68; b:= 68; end;

if m = 10 then begin a:= 71; b:= 72; end;

for j:= a to b do // строчки

Begin

// чтобы не была ячейка пустой

if (StringGrid1.Cells[i, j] = '') then

Begin

ShowMessage('Обнаружена пустая ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

// чтобы в ячейке было число, а не что-то другое

if not Trystrtofloat(StringGrid1.Cells[i, j], ch) then

Begin

ShowMessage('Обнаружена некорректно заполненная ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

end;

end;

{____ выполнять проверку для алгоритма #3 ____}

if knop = 3 then

for m:= 1 to 15 do // всего 15 "отрезков" нужных для данного алгоритма заполнений в таблице

Begin

// a - первая строка, b - последняя строка

if m = 1 then begin a:= 4; b:= 7; end;

if m = 2 then begin a:= 9; b:= 11; end;

if m = 3 then begin a:= 13; b:= 14; end;

if m = 4 then begin a:= 16; b:= 20; end;

if m = 5 then begin a:= 23; b:= 27; end;

if m = 6 then begin a:= 30; b:= 36; end;

if m = 7 then begin a:= 38; b:= 40; end;

if m = 8 then begin a:= 42; b:= 44; end;

if m = 9 then begin a:= 47; b:= 48; end;

if m = 10 then begin a:= 50; b:= 51; end;

if m = 11 then begin a:= 55; b:= 57; end;

if m = 12 then begin a:= 60; b:= 61; end;

if m = 13 then begin a:= 63; b:= 72; end;

if m = 14 then begin a:= 78; b:= 79; end;

if m = 15 then begin a:= 83; b:= 83; end;

for j:= a to b do // строчки

Begin

// чтобы не была ячейка пустой

if (StringGrid1.Cells[i, j] = '') then

Begin

ShowMessage('Обнаружена пустая ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

// чтобы в ячейке было число, а не что-то другое

if not Trystrtofloat(StringGrid1.Cells[i, j], ch) then

Begin

ShowMessage('Обнаружена некорректно заполненная ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

end;

end;

{____ выполнять проверку для алгоритма #4 ____}

if knop = 4 then

for m:= 1 to 15 do // всего 15 "отрезков" нужных для данного алгоритма заполнений в таблице

Begin

// a - первая строка, b - последняя строка

if m = 1 then begin a:= 4; b:= 7; end;

if m = 2 then begin a:= 9; b:= 11; end;

if m = 3 then begin a:= 13; b:= 14; end;

if m = 4 then begin a:= 16; b:= 20; end;

if m = 5 then begin a:= 23; b:= 27; end;

if m = 6 then begin a:= 30; b:= 36; end;

if m = 7 then begin a:= 38; b:= 40; end;

if m = 8 then begin a:= 42; b:= 44; end;

if m = 9 then begin a:= 47; b:= 48; end;

if m = 10 then begin a:= 50; b:= 51; end;

if m = 11 then begin a:= 55; b:= 57; end;

if m = 12 then begin a:= 60; b:= 61; end;

if m = 13 then begin a:= 63; b:= 72; end;

if m = 14 then begin a:= 83; b:= 84; end;

if m = 15 then begin a:= 87; b:= 87; end;

for j:= a to b do // строчки

Begin

// чтобы не была ячейка пустой

if (StringGrid1.Cells[i, j] = '') then

Begin

ShowMessage('Обнаружена пустая ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

// чтобы в ячейке было число, а не что-то другое

if not Trystrtofloat(StringGrid1.Cells[i, j], ch) then

Begin

ShowMessage('Обнаружена некорректно заполненная ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

end;

end;

{____ выполнять проверку для алгоритма #5 ____}

if knop = 5 then

for m:= 1 to 12 do // всего 12 "отрезков" нужных для данного алгоритма заполнений в таблице

Begin

// a - первая строка, b - последняя строка

if m = 1 then begin a:= 4; b:= 7; end;

if m = 2 then begin a:= 9; b:= 11; end;

if m = 3 then begin a:= 13; b:= 14; end;

if m = 4 then begin a:= 16; b:= 20; end;

if m = 5 then begin a:= 23; b:= 27; end;

if m = 6 then begin a:= 30; b:= 36; end;

if m = 7 then begin a:= 38; b:= 40; end;

if m = 8 then begin a:= 42; b:= 44; end;

if m = 9 then begin a:= 83; b:= 84; end;

if m = 10 then begin a:= 86; b:= 87; end;

if m = 11 then begin a:= 89; b:= 93; end;

if m = 12 then begin a:= 95; b:= 95; end;

for j:= a to b do // строчки

Begin

// чтобы не была ячейка пустой

if (StringGrid1.Cells[i, j] = '') then

Begin

ShowMessage('Обнаружена пустая ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

// чтобы в ячейке было число, а не что-то другое

if not Trystrtofloat(StringGrid1.Cells[i, j], ch) then

Begin

ShowMessage('Обнаружена некорректно заполненная ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

end;

end;

{____ выполнять проверку для алгоритма #6 ____}

if knop = 6 then

for m:= 1 to 16 do // всего 16 "отрезков" нужных для данного алгоритма заполнений в таблице

Begin

// a - первая строка, b - последняя строка

if m = 1 then begin a:= 4; b:= 7; end;

if m = 2 then begin a:= 9; b:= 11; end;

if m = 3 then begin a:= 13; b:= 14; end;

if m = 4 then begin a:= 16; b:= 20; end;

if m = 5 then begin a:= 23; b:= 27; end;

if m = 6 then begin a:= 30; b:= 36; end;

if m = 7 then begin a:= 38; b:= 40; end;

if m = 8 then begin a:= 42; b:= 44; end;

if m = 9 then begin a:= 47; b:= 48; end;

if m = 10 then begin a:= 50; b:= 51; end;

if m = 11 then begin a:= 55; b:= 57; end;

if m = 12 then begin a:= 60; b:= 61; end;

if m = 13 then begin a:= 63; b:= 72; end;

if m = 14 then begin a:= 80; b:= 80; end;

if m = 15 then begin a:= 83; b:= 84; end;

if m = 16 then begin a:= 86; b:= 87; end;

for j:= a to b do // строчки

Begin

// чтобы не была ячейка пустой

if (StringGrid1.Cells[i, j] = '') then

Begin

ShowMessage('Обнаружена пустая ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

// чтобы в ячейке было число, а не что-то другое

if not Trystrtofloat(StringGrid1.Cells[i, j], ch) then

Begin

ShowMessage('Обнаружена некорректно заполненная ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

end;

end;

{____ выполнять проверку для алгоритма #7 ____}

if knop = 7 then

for m:= 1 to 17 do // всего 17 "отрезков" нужных для данного алгоритма заполнений в таблице

Begin

// a - первая строка, b - последняя строка

if m = 1 then begin a:= 4; b:= 7; end;

if m = 2 then begin a:= 9; b:= 11; end;

if m = 3 then begin a:= 13; b:= 14; end;

if m = 4 then begin a:= 16; b:= 20; end;

if m = 5 then begin a:= 23; b:= 27; end;

if m = 6 then begin a:= 30; b:= 36; end;

if m = 7 then begin a:= 38; b:= 40; end;

if m = 8 then begin a:= 42; b:= 44; end;

if m = 9 then begin a:= 47; b:= 48; end;

if m = 10 then begin a:= 50; b:= 51; end;

if m = 11 then begin a:= 55; b:= 57; end;

if m = 12 then begin a:= 60; b:= 61; end;

if m = 13 then begin a:= 63; b:= 72; end;

if m = 14 then begin a:= 76; b:= 77; end;

if m = 15 then begin a:= 83; b:= 83; end;

if m = 16 then begin a:= 89; b:= 89; end;

if m = 17 then begin a:= 91; b:= 92; end;

for j:= a to b do // строчки

Begin

// чтобы не была ячейка пустой

if (StringGrid1.Cells[i, j] = '') then

Begin

ShowMessage('Обнаружена пустая ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

// чтобы в ячейке было число, а не что-то другое

if not Trystrtofloat(StringGrid1.Cells[i, j], ch) then

Begin

ShowMessage('Обнаружена некорректно заполненная ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

end;

// Проверка для Edit

// чтобы не была ячейка пустой

if (Edit1.Text = '') then

Begin

ShowMessage('Обнаружено пустое поле ввода');

Edit1.SetFocus; // устанавливаем фокус в этот едит

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

// чтобы в ячейке было число, а не что-то другое

if not Trystrtofloat(Edit1.Text, ch) then

Begin

ShowMessage('Обнаружено некорректно заполненное поле ввода');

Edit1.SetFocus; // устанавливаем фокус в этот едит

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

end;

{____ выполнять проверку для алгоритма #8 ____}

if knop = 8 then

for m:= 1 to 18 do // всего 18 "отрезков" нужных для данного алгоритма заполнений в таблице

Begin

// a - первая строка, b - последняя строка

if m = 1 then begin a:= 4; b:= 7; end;

if m = 2 then begin a:= 9; b:= 11; end;

if m = 3 then begin a:= 13; b:= 14; end;

if m = 4 then begin a:= 16; b:= 20; end;

if m = 5 then begin a:= 23; b:= 27; end;

if m = 6 then begin a:= 30; b:= 36; end;

if m = 7 then begin a:= 38; b:= 40; end;

if m = 8 then begin a:= 42; b:= 44; end;

if m = 9 then begin a:= 47; b:= 48; end;

if m = 10 then begin a:= 50; b:= 51; end;

if m = 11 then begin a:= 55; b:= 57; end;

if m = 12 then begin a:= 60; b:= 61; end;

if m = 13 then begin a:= 63; b:= 72; end;

if m = 14 then begin a:= 74; b:= 77; end;

if m = 15 then begin a:= 79; b:= 79; end;

if m = 16 then begin a:= 83; b:= 84; end;

if m = 17 then begin a:= 86; b:= 87; end;

if m = 18 then begin a:= 89; b:= 93; end;

if m = 18 then begin a:= 95; b:= 95; end;

for j:= a to b do // строчки

Begin

// чтобы не была ячейка пустой

if (StringGrid1.Cells[i, j] = '') then

Begin

ShowMessage('Обнаружена пустая ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

// чтобы в ячейке было число, а не что-то другое

if not Trystrtofloat(StringGrid1.Cells[i, j], ch) then

Begin

ShowMessage('Обнаружена некорректно заполненная ячейка');

StringGrid1.TopRow:= j; // перемещаем Scrollbar автоматически на строчку с этой ячейкой

StringGrid1.Col:= i; // столбец

StringGrid1.Row:= j; // строка

StringGrid1.SetFocus; // устанавливаем фокус в эту ячейку

prov:= False; // не разрешаем выполнять алгоритм

Exit; // выходим из процедуры проверки

end;

end;

end;

{____ выполнять проверку для алгоритма #9 ____}

if knop = 9 then

for m:= 1 to 17 do // всего 17 "отрезков" нужных для данного алгоритма заполнений в таблице

Begin

// a - первая строка, b - последняя строка


Дата добавления: 2015-10-13; просмотров: 80 | Нарушение авторских прав


Читайте в этой же книге: Модель TO-BE | Обоснование выбора языка и среды программирования | Описание главной формы | СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ | Private | Implementation | Interface | Interface | Implementation 3 страница | Implementation 4 страница |
<== предыдущая страница | следующая страница ==>
Interface| Implementation 2 страница

mybiblioteka.su - 2015-2024 год. (0.061 сек.)