Выпадающий список Метод имеет имя CBMethod. Индекс столбца, по которому ведется поиск, задается компонентом TSpinEdit с именем SEIndex. Значение критерия записывается в окно редактирования с именем EX. Кнопка Выполнить имеет имя BRun.

Таблица, отображающая содержимое массива, - компонент типа TStringGrid с именем SGA. В ней задано отображение трех столбцов (свойство ColCount) и десяти строк (свойство RowCount). Число фиксированных столбцов (свойство Fixed-Cols) задано равным 1. В фиксированном столбце отображаются номера строк. Результаты поиска отображаются в компоненте типа TStringGrid с именем SGC. В этой таблице задано отображение трех столбцов (свойство ColCount) и двух строк (свойство RowCount). Число фиксированных столбцов (свойство FixedCols) задано равным 1, число фиксированных строк (свойство FixedRows) также задано равным 1. В фиксированной строке отображаются индексы столбцов.

Теперь рассмотрим программную реализацию этого приложения. Код модуля UFind тестирующего приложения приведен в листинге 1.8.

Листинг 1.8. Модуль тестирующего приложения UFind pas

unit UFind; interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin, Grids, ExtCtrls;

type

TForml = class(TForm)

GBVector: TGroupBox;
SGA: TStringGrid;
GBData: TGroupBox;
BDim: TButton;
GBRun: TGroupBox;
Label3: TLabel;
BRun: TButton;
CBMethod: TComboBox;
GBResult: TGroupBox;
SGC: TStringGrid;
RGType: TRadioGroup;
GroupBoxl: TGroupBox;
Label2: TLabel;
SEDiml: TSpinEdit;
Label4: TLabel;
SEDim2: TSpinEdit;
GroupBox5: TGroupBox;
Labell: TLabel;
Label6: TLabel;
SEIndex: TSpinEdit;
EX: TEdit;
CBSort: TCheckBox;
procedure BDimClick(Sender: TObject);
procedure BRunClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SEDim2Change(Sender: TObject);

procedure EXChange(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

Forml: TForml; implementation

uses Arrays, // Модуль методов сортировки и поиска Math; // Для функции Min

{$R *.DFM}

var A: TArrayI2;
B: TArrayR2;
S: TArrayS2;
Rowl: TArrayll;
RowR: TArrayRl;
RowS: TArraySl;
N, M: integers-const MS = 2;
MDep = 7;
Dep: array[1..MDep] of string = ( 1 Бухгалтерия 1, 'Управление 1, 'Цех 1', 'Цех 2', 'Цех 3', 'Цех 4', 'Цех 5');
MFam = 10;
Fam: array[1..MFam] of string = ('Иванов', 'Петров', 1 Сидоров 1, 1 Борисов 1, 1 Антонов 1, 1 Иванова 1, 'Петрова 1, 1 Сидорова 1, 1 Борисова 1, 'Антонова');

procedure TForml.BDimClick(Sender : TObject); var i, j: integer; begin N := SEDiml.Value; if(RGType.Itemlndex = 2) then begin SEDim2.Value := MS; SEDim2.MaxValue := MS; end

else SEDim2.MaxValue := 1000; SEIndex.MaxValue := SEDim2.MaxValue - 1; if(SEIndex.Value > SEIndex.MaxValue)

then SEIndex.Value := SEIndex.MaxValue;
M := SEDim2.Value;

// Настройка размеров таблиц массивов

SGA.Height := Min((N +1)* SGA.DefaultRowHeight + N, 270);
SGA.RowCount := N;
SGA.ColCount := M+l;
SGC.ColCount := M+l;

// Задание размеров массива, заполнение массива case RGType.Itemlndex of 0: begin


⇐ Предыдущая страница| |Следующая страница ⇒

Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Май
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс