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

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

: LongInt; //Дескриптор библиотеки

ShowAbout : TProc; //Переменая для вызова функции из DLLbegin

 

begin

//Получить значение дескриптора загруженной библиотеки

Handle:=LoadLibrary(About.dll);

//Проверить существование библиотеки

if Handle = 0 then

begin

ShowMessage(Библиотека не найдена : About.dll);

exit;

end;

//Получить адрес вызываемой функции

@ShowAbout:= GetProcAddress(Handle, PChar(ShowAbout));

//Вызов функции, показывающей форму About

ShowAbout(Application);

FreeLibrary(Handle); //Выгрузка библиотеки

 

end;

 

 

procedure TForm1.PresentationClick(Sender: TObject);

var

name : string;

pw : TOleEnum;

begin

//Запуск презетации

Name:= ExtractFileDir(Application.ExeName) + \Vremennoj process.ppsx;

PowerPointApplication1.Activate;

PowerPointApplication1.Presentations.Open(Name, pw, pw, pw);

PowerPointApplication1.Presentations.Item(1).SlideShowSettings.Run;

//Другой способ запуска

// ShellExecute(Application.MainForm.Handle,PChar(Open),

// PChar(Riad.pps), NIL, PChar(), sw_ShowNormal);

end;//TFormMain.PresentationClick

 

procedure TForm1.Word1Click(Sender: TObject);

begin //Отчет в Word

ReportWord(StringGrid1);

end;//TFormMain.Word1Click

 

Procedure TForm1.ReportExcel(AStringGrid : TStringGrid);

//Отчет в Excel

var

Excel : variant;

WorkBook : variant; //Рабочая книга

i, j : integer;

begin

//Cоздать форму для графика

FormGraphic:= TFormGraphic.Create(Form1);

//Создать Соm-объект

Excel:= CreateOleObject(Excel.Application);

//Отключить реакцию на внешние события-для ускорения процесса передачи данных

Excel.Application.EnableEvents:= false;

//Добавить рабочую книгу

WorkBook:= Excel.WorkBooks.Add;

//Изменение ширины столбцов

for j:=0 to AStringGrid.ColCount do

WorkBook.WorkSheets[1].Columns[j+1].ColumnWidth:= 10;

//Вывод строки

WorkBook.WorkSheets[1].Cells[1,1]:= Отчет о колебаниях стержня;

//Заполнение ячеек таблицы Excel значениями из StringGrid

//Нумерация ячеек в Excel начинается с 1 и идет в формате строка-столбец

for i:= 1 to AStringGrid.RowCount + 1 do

for j:= 0 to AStringGrid.ColCount do

WorkBook.WorkSheets[1].Cells[i+1, j+1]:= AStringGrid.Cells[j, i-1];

//Вставит изображение графика в Excel

WorkBook.WorkSheets[1].Shapes.AddPicture(GetCurrentDir+\PictureWord.bmp,

True, True, 0, (AStringGrid.RowCount+2)*12.5+10, FormGraphic.Chart1.Width*0.8,

FormGraphic.Chart1.Height*0.8);

//Уничтожить форму

FormGraphic.Release;

FormGraphic:= NIL;

//Показать Excel

Excel.Visible:=true;

end;//TFormMain.ReportExcel

Procedure TForm1.ReportWord(AStringGrid : TStringGrid);

//Отчет в Word

var

i,j,k : integer;

a,b,c : OleVariant;

wa : TWordApplication; //WordApplication

wd : TWordDocument; //WordDocument

begin

//Создать форму для графика

FormGraphic:= TFormGraphic.Create(Form1);

//Создать com-объект

wa:= TWordApplication.Create(Form1);

//Подключиться к серверу Word

wa.Connect;

//Добавить новый документ

wa.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);

wd:= TWordDocument.Create(Form1);

wd.ConnectTo(wa.ActiveDocument);

//Отменить проверку правописания

wa.Options.CheckSpellingAsYouType:=False;

//Отменить проверку орфографии

wa.Options.CheckGrammarAsYouType:=False;

a:= 0;

b:= 0;

wd.Range.InsertAfter(Отчет);

c:= Length(wd.Range.Text) - 1;

a:= c;

b:= c + 10;

//Добавить таблицу

wd.Tables.Add(wd.Range(a), AStringGrid.RowCount,

AStringGrid.ColCount, EmptyParam, EmptyParam);

k:= 1;

//Перенести данные из StringGrid в таблицу

for i:= 1 to AStringGrid.RowCount do

for j:= 1 to AStringGrid.ColCount do

wd.Tables.Item(k).Cell(i,j).Range.Text:= AStringGrid.Cells[j-1, i-1];

//Загрузить изображение в Image

FormGraphic.Image1.Picture.LoadFromFile(PictureWord.bmp);

//Поместить изображение в буфер обмена

Clipboard.Assign(FormGraphic.Image1.Picture);

c:= Length(wd.Range.Text) - 1;

a:= c;

//Вставить изображение из буфера обмена

wa.Selection.Paste;

//Показать Word

wa.Visible:= true;

//Уничтожить форму

FormGraphic.Release;

FormGraphic:= NIL;

end;//TFormMain.ReportWord

 

procedure TForm1.Excel1Click(Sender: TObject);

begin

ReportExcel(StringGrid1);

end;

 

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

WinExec(hh.exe 1.chm,SW_SHOW);

end;

 

end.

 

Файл вывода графика UnitGraphic.pas

 

unit UnitGraphic;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, StdCtrls, ExtCtrls, TeeProcs, Chart, XPMan,

TeeFunci, Buttons;

 

type

TFormGraphic = class(TForm)

Chart1: TChart;

Button1: TButton;

XPManifest1: TXPManifest;

Series1: TLineSeries;

Series2: TLineSeries;

TeeFunction1: TAddTeeFunction;

Series3: TLineSeries;

Image1: TImage;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

procedure Button1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

FormGraphic: TFormGraphic;

 

implementation

 

uses UnitRiad;

{$R *.dfm}

 

procedure TFormGraphic.Button1Click(Sender: TObject);

begin

Chart1.Series[0].Clear;

Chart1.Series[1].Clear;

Chart1.Series[2].Clear;

Close;

end;//TFormGraphic.Button1Click

 

procedure TFormGraphic.BitBtn1Click(Sender: TObject);

begin

Riad.Graphic1(FormGraphic.Chart1);

end;

 

procedure TFormGraphic.BitBtn2Click(Sender: TObject);

begin

Riad.Graphic2(FormGraphic.Chart1);

end;

 

procedure TFormGraphic.BitBtn3Click(Sender: TObject);

begin

Riad.Graphic3(FormGraphic.Chart1);

end;

 

procedure TFormGraphic.BitBtn4Click(Sender: TObject);

begin

Chart1.Series[0].Clear;

Chart1.Series[1].Clear;

Chart1.Series[2].Clear;

end;

 

end.

end.

 

Файл реализации класса - UnitRiad.pas

 

unit UnitRiad;

interface

 

uses Chart, Series, Math, Grids, SysUtils, Types, Graphics, IniFiles, Messages, Dialogs, StdCtrls, Variants, Classes, Controls, Forms,

ExtCtrls, Buttons, Menus;

 

Type

TRiad = class //класс

 

 

private

IniFile : TIniFile; //Объект Ini-файла

w: integer;

 

public

Constructor Create(AIniFileName : string);

Destructor Destroy;

procedure Graphic1(AChart:TChart); //Постоение графика

procedure Graphic2(AChart:TChart); //Постоение графика

procedure Graphic3(AChart:TChart); //Постоение графика

procedure Table(AStringGrid:TStringGrid); //Вывод в таблицу

procedure WriteToIniFile; //Запись в Ini-файл

procedure ReadFromIniFile; //Чтение из Ini-файла

function GetW : integer; //Получить w

procedure SetW; //Установить w