Программная реализация разложения временного процесса в тригонометрический ряд
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
: 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