Разработка приложений в среде объектно-ориентированного программирования Delphi
3. Практическая часть
Выполнение практической части курсовой работы предполагает разработку приложения, включающего функциональные части:
1. Главное меню: Файл (Открыть, Сохранить, Выход), Данные (Рассчитать), Справка (О программе), использующее стандартные диалоги;
2. Таблица StringGrid.
Назначение программы: Значения, считываемые из файла, заносятся в таблицу размером 5*5. Находятся и выводятся на экран и в файл максимальное значение, его индексы.
Листинг данного приложения выглядит следующим образом.
Файл проекта Project1.dpr:
program Project1;
uses
Forms,
Unit1 in Unit1.pas {Form1},
Unit3 in ..курс макспрогаUnit3.pas {Form3};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm3, Form3);
Application.Run;
end.
Файл Unit1:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Menus, ComCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Edit2: TEdit;
Label2: TLabel;
Button2: TButton;
StaticText1: TStaticText;
MainMenu1: TMainMenu;
N1: TMenuItem;
RichEdit1: TRichEdit;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
Button3: TButton;
Edit1: TEdit;
StaticText2: TStaticText;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
n,i,j:integer;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
st, buf:string;
f: TextFile;
fName: String;
begin
fName := Edit2.Text;
AssignFile(f, fName);
Reset(f);
read(f, st);
n:=5;
Form1.StringGrid1.ColCount:=n;
Form1.StringGrid1.RowCount:=n;
while (i<=n) and (j<=n) do
begin
buf:= Copy(st,1,Pos( ,st)-1);
Delete(st,1,Pos( ,st));
Form1.StringGrid1.Cells[j,i]:=buf;
j:=j+1;
if j = n then begin j:=0; i:=i+1;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
j:=0;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i,j,im,jm: integer;
begin
im:=1; jm:=1;
for i:=0 to stringgrid1.RowCount-1 do
for j:=0 to stringgrid1.ColCount-1 do
if stringgrid1.Cells[j,i]>stringgrid1.Cells[jm,im] then
begin
im:=i;
jm:=j;
end;
RichEdit1.Lines.add(stringgrid1.Cells[jm,im]);
RichEdit1.Lines.add(Индекс max эл-та:);
RichEdit1.Lines.add(inttostr(jm));
RichEdit1.Lines.add(inttostr(im));
end;
procedure TForm1.N8Click(Sender: TObject);
begin
Form3.ShowModal;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
fName: String;
begin
RichEdit1.Lines.SaveToFile(fName);
end;
end.
Файл Unit3:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
end.
Скриншоты интерфейса программы:
Рисунок 3.1
Рисунок 3.2
Рисунок 3.3