Главная Случайная страница



Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника







Приложение для работы со статическим массивом записей





12.1. Цель работы

Цель работы - освоение основных приемов работы для:

1. ввода статического массива записей из текстового файла;

2. вывода массива записей в текстовый файл результатов;

3. поиска записи в массиве записей с использованием стандартного диалогового окна для ввода данных для поиска и вывода сообщения;

4. использования типовых диалоговых методов для вывода форм с сообщениями и кнопками;

5. вывода одной записи в строку таблицы типа TStringGrid;

6. вывода массива записей в таблицу StringGrid.

12.2 Задание на выполнение работы

Для выполнения работы надо:

1) Для работы с массивом записей создать модуль UNITLR7:

а) с процедурами:

§ ввода исходных данных из текстового файла в ОП,

§ вывода массива записей в текстовый файл результатов,

§ вывода одной записи в файл результатов,

§ смены местами двух строк массива записей,

§ вывода шапки таблицы в текстовый файл,

б) с функцией удаления пробелов в начале и конце строки.

2) Разработать интерфейс с использованием панели и кнопок для:

а) ввода исходных данных из текстового файла в ОП;

б) вывода массива записей в текстовый файл результатов;

в) поиска записи в массиве записей с использованием режима диалога;

г) смены местами двух строк массива записей;

д) вывода массива записей в таблицу типа TStringGrid.

3) Разработать метод поиска записи по одному поисковому признаку с использованием стандартного диалогового окна и стандартных методов для вывода .модального окна с заданным сообщением и кнопкой.

12.3. Процесс выполнения работы

1) Создать форму с компонентами:

¨ одна кнопка типа TButton;

¨ панель для размещения кнопок;

¨ на панели разместить 4 кнопки типа TButton - для управления выполнением приложения;

¨ кнопка типа TBitBtn для завершения приложения; установить ее свойство Kind = bkClose;

¨ метка для заголовка таблицы; установить ее свойство Caption = СВЕДЕНИЯ О СТУДЕНТАХ;

¨ компонент типа TStringGrid для вывода данных.

2) Установить свойства:



а) формы:

caption = работа с массивом записей. диалоговый поиск.

б) Caption кнопок в соответствии с рис. 12.1;

в) Panel1: свойство Visible = False.

3) Присоединить к проекту модуль с подпрограммами:

- в список Uses раздела Implementation модуля основной формы добавить имя присоединенного модуля UNIT_LR7;

- с помощью конструктора проекта добавить модуль в проект; конструктор вызвать командой Project\Add to Project или пиктограммой.

4) Установить свойства компонента TstringGrid1: FixedCols=0, FixedRows, равное количеству строк заголовка таблицы (например = 2), RowCount = FixedRows + 1, ColCount, равное количеству столбцов. Настроить ширину столбцов таблицы ("перетаскиванием" их границ).

5) Разработать методы реакции на нажатие кнопок для:

а) ввода исходных данных из текстового файла в ОП;

б) вывода массива записей в текстовый файл результатов;

в) смены местами двух строк массива записей;

г) вывода массива записей в таблицу типа TStringGrid;

д) завершения процесса выполнения приложения.

6) При создании формы (метод FormCreate):

¨ связать и открыть текстовый файл для вывода результатов;

¨ вывести заголовок в таблице типа TStringGrid.

7) Открыть окно репозитария с шаблонами диалоговых форм с помощью команды File\New\Dialogs; выбрать из него стандартную диалоговую форму для ввода поискового признака с двумя кнопками.

8) Присоединить эту форму к проекту с помощью менеджера проекта; вызвать его командой

Project\Add to Project или пиктограммой.

9) Установить свойства диалоговой формы:

Caption = ФОРМА ДЛЯ ВВОДА ФАМИЛИИ

Position = poDefault - для вывода формы в левый верхний угол.

10) Разместить на диалоговой форме:

¨ метки для приглашения ко вводу фамилии;

¨ окно типа TEdit для ввода поискового признака; установить его свойство Text = ИВАНОВ И. И.

11) Разработать метод реакции на нажатие кнопки для диалогового поиска:

а) показ диалоговой формы с помощью метода ShowModal для ввода требуемой фамилии;

б) ввод поискового признака из окна TEdit в переменную программы;

в) вывод модального окна с заданным сообщением и кнопкой с помощью стандартного метода ShowMessagePos в случае ввода пустой строки для поиска;

г) поиск записи в массиве записей;

д) вывод в результате поиска стандартным методом ShowMessagePos:

¨ сообщения о неуспешном поиске в модальное окно и пустой строки в первую строку таблицы StringGrid или,

¨ сообщения об успешном поиске и найденной записи в первую строку таблицы StringGrid;

е) вывод модального окна стандартным методом ShowMessage с сообщением о завершении поиска.

Для вывода пустой строки в строку таблицы StringGrid 1 разработать внутреннюю процедуру NN метода Button3Click.

На рис. 12.1 представлен вид формы после размещения на ней компонентов.

 

 
 

 


СВЕДЕНИЯ О СТУДЕНТАХ

 
 

 


Рис 12.1 Вид формы с компонентами в процессе разработки приложений



На рис. 12.2 - форма в процессе выполнения приложения.

 

 


Рис. 12.2 Форма в процессе выполнения приложения.

На рис. 6.3 -диало­говая форма для ввода поискового признака

 
 

 


Рис. 12.3 Диалоговая форма для ввода поискового признака

       
   
 
 
 
   
 

 


127.4 Сообщение о вводе поискового признака

12.5 Сообщение о результате успешного поиска

 

       
   

 


 

Рис. 12.6. Сообщение о завершении поиска Рис. 12.7. Сообщение о неуспешном поиске

 

В листингах 6.1, 6.2 и 6.3 представлены примеры текстов модулей приложения. На листинге 6.4 приведен текст исходных данных для создания массива записей. Текстовый файл Lr7.res с результатами можно вызвать командой File\Open.

Листинг 12.1. Текст модуля основной формы приложения для работы со статическим массивом записей

unit Unitl;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, ^

Forms, Dialogs, StdCtrls, Buttons, Grids,

UNIT_LR7;

Type

Tform1=class(TForm) // Тип формы с компонентами

//Кнопки для:

Button1:Tbutton; //Ввода данных из текстового файла

Button2:Tbutton; //Вывода данных в текстовый файл

Button3:Tbutton; //Поиска записи по фамилии

Button4:Tbutton; //Смены местами строк

Button5:Tbutton; //Вывода массива записей в таблицу

StringGridl: TStringGrid; //Таблица для вывода результатов

Panel1:TPanel; //Панель для кнопок

BitBtn:TbitBtn; //Завершение работы приложения

Label1:TLabel; //Метка для заголовка таблицы

procedure FormCreate(Sender: TObject); //При создании формы

procedure Button1Click(Sender: TObject) //Ввод данных

procedure Button2Click(Sender: TObject) //Вывод данных

procedure Button3Click(Sender: TObject) //Поиск по фамилии

procedure Button4Click(Sender: TObject) //Смена местами строк

procedure Button5Click(Sender: TObject) //Вывод массива в таблицу

procedure BitBtn1Click(Sender: TObject) //Завершить приложение

private { Private declarations }

public { Public declarations }

end;

var Form1. TForml;

implementation

uses Unit2; {$R *.DFM}
// При создании формы

procedure TForm1.FormCreate(Sender: TObject);

VAR I, J : integer;

// Массив для вывода шапки таблицы:

Const С : array[0..1, 0..3] of string =

(( НОМЕР ', ГРУППА ', ' ФАМИЛИЯ,', ' РАЗМЕР'),
('ЗАЧЕТКИ', ‘’ ' ИНИЦИАЛЫ", 'СТИПЕНДИИ'));

begin

AssignFile (FR, 'Lr7.res');

Rewrite (FR);
For I := 0 to 1 do // Вывод, шапки в StringGrid1:

For J := 0 to 3 do

StringGrid1.Cells[J,I]:= C[I,J]

end;
//------------------------------------------------- 1

// Ввод исходных данных

procedure TForm1.Button1Click(Sender: TObject);

begin

VVOD; // - вызов процедуры из модуля UNIT_LR7

Panel1.Visible ;= True; // - сделать панель с кнопками видимой

Button1.Enabled : = False; // - сделать кнопку недоступной

end;

//------------------------------------------------------------------

// Вывод исходных данных массива записей в текстовый файл .

procedure TForm1.Button2Click(Sender: TObject);

begin

VIVOD; .// вызов процедуры из модуля UNIT_LR7

 

Button2.Enabled:=False;

end;

//----------------------------------------------------

// Вывод Z-записи в I-строку таблицы StringGridl

procedure Stroka(I : byte; Z : STRUC);

Var

ST : string

Begin

WITH Form1.StringGrid1, Z DO

begin

// Вывод элементов записи Z в строку таблицы:

Cells[0,I]:=’ ‘+ IntToStr(NZ);

Cells[1,I]:=’ ‘+ GR;

Cells[2,I]:=’ ‘+ FIO;

STR(RS:11:2, ST); // - преобразование числа RS в строку ST

Cells[3,I]:=;

end;

end;

//------------------------------------------------------- _

// Поиск записей по фамилии в режиме ДИАЛОГА

procedure TForm1.Button3Click(Sender: TObject);

Label MK;

Var I : integer;

// Внутренняя процедура очистки строки таблицы:

procedure NN;

begin

WITH StringGridl DO

begin

Cells[0,2]:=' ';

Cells[1,2]:=’’;

Cells[2,2] :=’ Ошибка ! ‘;

Cells[3,2]:=’ ‘+ ST

end;

end;

begin

REPEAT

If OKBottomDlg.ShowModal = mrOK THEN // - нажата кнопка Ввод

Begin

TFM := OKBottomDlg.Edit1.Text; // - ввод требуемой фамилии

// Вывод сообщения:

ShowMessagePos('Вы ввели фамилию ‘+TFM, 20, 30);

TFM:=FILTR(TFM);

IF TFM =' ' then

Begin // Вывод сообщения:

ShowMessagePos(‘Нет фамилии для поиска’,20,90);

CONTINUE

end;

FOR I := 1 TO N DO // - перебор номеров элементов массива

IF TFM = Z[I].FI0 THEN

BEGIN

ShowMessagePos('Запись с фамилией '+TFM+'найдена',50,80);

Stroka(2, Z[I]); // - заполнение 2-й строки таблицы:

GOTO MK // - конец цикла поиска);

END;

ShowMessagePos (' Фамилия '+TFM+’ ошибочна ',50,80);

NN; // - вызов процедуры очистки строки таблицы

End; // - после THEN окна диалога

ELSE // - нажата кнопка Выход

// Выход из метода:

begin

ShowMessage (' Поиск закончен:’);

Exit;

End

МК: UNTIL False; // - бесконечный цикл

end;

//----------------------------------------------------

// Смена местами строк массива записей

procedure TForm1.Button4Click(Sender: TObject);

begin

SMENA; // - вызов процедуры из модуля UNIT_LR7

Button5Click(Sender); // - вызов метода для вывода таблицы

Button4.Enabled := False; // - сделать кнопку недоступной

end;

//--------------------------------------------------------------------------

// Вывод массива записей в таблицу

procedure TForm1.Button5Click(Sender: TObject);

VAR

I : integer;

begin

StringGridl.RowCount := N + 2; // - количество строк в StringGridl

For I := 2 to N+1 do // - вывод (I-1) - записи в таблицу

Stroka(I, Z[I-1]);

end;
//--------------------------------------------------------------------------------// Завершение выполнения приложения

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

CloseFile(FR); Close;

end;

end.. // - модуля








Date: 2015-05-22; view: 441; Нарушение авторских прав



mydocx.ru - 2015-2021 year. (0.068 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию