на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Формирование и отображение звёзд разных размеров
Рисунок 3.8 - Панель инструментов

При выборе кнопки происходит вызов окна помощи, содержащим сведения о работе с программой (см. рисунок 3.9)

Рисунок 3.9 - Окно справочной системы

Кнопки и обеспечивают по желанию пользователя формирование отчетов с параметрами формы в виде текстового документа в стиле редактора Ms Word или в табличном процессоре MS Excel.

Также на панели управления можно указать тип обьекта (классический или COM), который будет создаваться для отображения звёзд.

Рисунок 3.10 - Выбор типа обьекта

При щелчке правой кнопкой мыши в главном окне, появляется контекстное меню, приведенное на рисунке 3.11.

Рисунок 3.10 - Контекстное меню программы

Для выхода из программы следует нажать кнопку «Выход».

4. Методика испытаний

Целью проведения испытаний является проверка работоспособности (надежности) программы при различных условиях ее функционирования.

Программа должна обеспечивать корректность ввода исходных данных (путем осуществления соответствующих проверок и информирования пользователя о возникших неточностях в работе), а также получение непротиворечивого результата.

Для демонстрации работоспособности программы необходимо провести ряд испытаний с различными начальными условиями. Для обеспечения нормальной работы программы требуется наличие соответствующих DLL, а также приложений Word, Excel.

Для использования COM-сервера, он должен быть предварительно зарегистрирован в системе. Тестовые примеры выполнялись в среде операционной системы Windows XP Profesional при разрешении экрана 1024*768. Для работы с программой необходимо также наличие клавиатуры и манипулятора типа «мышь».

Первое испытание произведем с созданием классического типа обьекта. Результаты испытания показаны на рисунке 4.1.

Рисунок 4.10 - Работа программы

При вводе некорректных данных появляется сообщение (например, при вводе значения таймера): поля ввода данных позволяют вводить только цифры.

Рисунок 4.2 - Сообщение ошибки ввода данных

Произведем также испытание с использованием разработанного COM-объекта.

Рисунок 4.3 - Работа программы с использованием Com - объекта

Таким образом, проведенное тестирование программы не выявило сбойных ситуаций и некорректностей в ее работе. Следует считать, что в целом программа протестирована, отвечает поставленным требованиям и вполне работоспособна.

Заключение

В ходе выполнения курсовой работы

·
были закреплены знания по курсу «Разработка приложений в визуальных средах»;

· приобретен опыт при разработке объектно-ориентированных программ;

· изучены принципы создания динамических библиотек;

· изучены и реализованы способы создания клиент-серверных приложений на базе COM-технологий;

· освоены методы передачи данных между приложениями;

· изучены возможности создания справочной системой высокой степени сложности и различных форматов.

При разработке программы использовался модульный принцип программирования. Такая структура программы позволяет в дальнейшем модифицировать отдельные её части без нарушения работоспособности и потери функциональности приложения.

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

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

Литература

1. Краснов М.В. OpenGL графика в проектах Delphi. -СПб.: БХВ-Петербург, 2002.

2. Конспекты по курсу «Разработка приложений в визуальных средах»

ПРИЛОЖЕНИЕ

Файл проекта Stars.dpr

program Stars;

uses

Forms,

Windows,

Classes,

Dialogs,

SysUtils,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

UStar in 'UStar.pas';

Type

//Процедурный тип для функции, вызываемой из DLL

TProc=procedure(AOwner:TComponent);

Var

Handle : LongWord; //Дескриптор DLL

ShowScreen : tproc; //Переменная для функции

{$R *.res}

begin

Application.Initialize;

//*****Загрузка библиотеки и показ заставки******//

Handle:= LoadLibrary('Screen.dll');

if Handle <> 0 then

begin

//Получить адрес функции из библиотеки

@ShowScreen:= GetProcAddress(Handle, 'ShowScreen');

ShowScreen(Application); //Показать заставку

FreeLibrary(Handle); //Удалить библиотеку

end

else ShowMessage('Не найдена библиотека Screen.dll');

//***********************************************//

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.Run;

end.

Файл головного модуля Unit1.pas

unit Unit1;

interface

uses

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

Dialogs, OpenGL, Menus, ExtCtrls, Buttons, ToolWin, ComCtrls,inifiles,WordXP,

StdCtrls;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N7: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

Timer1: TTimer;

ColorDialog1: TColorDialog;

ColorDialog2: TColorDialog;

PopupMenu1: TPopupMenu;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

ToolBar1: TToolBar;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

SpeedButton6: TSpeedButton;

SpeedButton7: TSpeedButton;

SpeedButton8: TSpeedButton;

ToolButton1: TToolButton;

CheckBox1: TCheckBox;

ToolButton2: TToolButton;

procedure N3Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure ReadParams;

procedure WriteParams;

procedure SpeedButton7Click(Sender: TObject);

procedure ReportWord;

procedure SpeedButton8Click(Sender: TObject);

procedure ReportExcel;

private

hrc: HGLRC;

end;

var

Form1: TForm1;

c1,c2:TColor;

implementation

uses Unit2,ULibType,ComObj,Unit3;

{$R *.dfm}

procedure SetDCPixelFormat (hdc : HDC);

var

pfd : TPixelFormatDescriptor;

nPixelFormat : Integer;

begin

FillChar (pfd, SizeOf (pfd), 0);

pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;

nPixelFormat := ChoosePixelFormat (hdc, @pfd);

SetPixelFormat (hdc, nPixelFormat, @pfd);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

ReadParams;

SetDCPixelFormat(Canvas.Handle);

hrc := wglCreateContext(Canvas.Handle);

Timer1.Interval:=1000;

Timer1.Enabled:=false;

c1:=RGB(0,0,255);

c2:=RGB(255,255,0);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

wglDeleteContext(hrc);

end;

procedure TForm1.N3Click(Sender: TObject);

var

Test:IStar;

Star:TStar;

begin

wglMakeCurrent(Canvas.Handle, hrc);

glViewPort (0, 0, Form1.ClientWidth, Form1.ClientHeight); // область вывода

if Form1.CheckBox1.Checked

then begin

Test:=CreateComObject(Class_Star) as IStar;

Test.SetC1(c1);

Test.SetC2(c2);

Test.PaintStar; end

else begin

Star:=TStar.Create();

Star.c1:=c1;

Star.c2:=c2;

Star.PaintStar;

end;

SwapBuffers(Canvas.Handle); // содержимое буфера - на экран

wglMakeCurrent(0, 0);

Test:=Nil;

if Form2.CheckBox1.Checked then

Form1.Timer1.Enabled:=false

else

Form1.Timer1.Enabled:=true;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

WriteParams;

Close;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

N3Click(Sender);

end;

procedure TForm1.N4Click(Sender: TObject);

begin

if ColorDialog1.Execute then

c1:=ColorDialog1.Color;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

if ColorDialog2.Execute then

c2:=ColorDialog2.Color;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm1.N2Click(Sender: TObject);

Type

//Процедурный тип для вызова процедуры из DLL

TProc = procedure(AOwner:TComponent);

var

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

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

begin

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

HLib:=LoadLibrary('About.dll');

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

if HLib = 0 then

begin

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

exit;

end;

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

@ShowAbout:= GetProcAddress(HLib, 'ShowAbout');

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

ShowAbout(Application);

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

N3Click(Sender);

end;

procedure TForm1.SpeedButton5Click(Sender: TObject);

begin

Application.HelpFile := 'Help\NewProject.hlp';

Application.HelpCommand(HELP_FINDER, 3);

end;

procedure TForm1.ReadParams;

Var

IniFile:TIniFile; // объявление переменной, через которую будут обрабатываться данные

Path:String; // Переменная, где будет храниться путь к программе

begin

Path:=Application.ExeName; // полный путь и название запущенной программы

Path:=ExtractFileDir(Path); // отбрасываем название программы. Остается путь.

if Path[Length(Path)]<>'\' then Path:=Path+'\'; // если последний символ не \ то добавить его

{Последняя строка нужна для присвоения последнего символа '\',

потому что при обрезке файла 'C:\PROG.EXE' получим 'C:\',

а при обрезке 'C:\WINDOWS\PROG.EXE' получим 'C:\WINDOWS' }

IniFile:=TIniFile.Create(Path+'project.ini'); // полный путь к программе и имя ini файла

Form1.Top:=IniFile.ReadInteger('FORM1','Form1Top',Form1.Top); // верхнее положение окна

Form1.Left:=IniFile.ReadInteger('FORM1','Form1Left',Form1.Left); // левое положение окна

Form1.Height:=IniFile.ReadInteger('FORM1','Form1Height',Form1.Height); // высота

Form1.Width:=IniFile.ReadInteger('FORM1','Form1Width',Form1.Width); // ширина

IniFile.Free; // если сами создаем, то сами уничтожаем.

end;

procedure TForm1.WriteParams;

Var

IniFile:TIniFile;

Path:String; // Переменная, где будет храниться путь к программе

begin

Path:=Application.ExeName; // полный путь и название запущенной программы

Path:=ExtractFileDir(Path); // отбрасываем название программы. Остается путь.

if Path[Length(Path)]<>'\' then Path:=Path+'\'; // если последний символ не \ то добавить его

IniFile:=TIniFile.Create(Path+'project.ini'); // полный путь к программе и имя ini файла

IniFile.EraseSection('FORM1'); //удаление секции

IniFile.WriteInteger('FORM1','Form1Top',Form1.Top);

IniFile.WriteInteger('FORM1','Form1Left',Form1.Left);

IniFile.WriteInteger('FORM1','Form1Height',Form1.Height);

IniFile.WriteInteger('FORM1','Form1Width',Form1.Width);

IniFile.Free;

end;

procedure TForm1.SpeedButton7Click(Sender: TObject);

begin

ReportWord;

end;

procedure TForm1.ReportWord;

//Отчет в Word

var

wa : TWordApplication; //WordApplication

wd : TWordDocument; //WordDocument

begin

//Создать 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;

wd.Range.InsertAfter('Отчет: '+#13);

wd.Range.InsertAfter('Параметры формы: '+#13);

wd.Range.InsertAfter('Отступ сверху '+IntToStr(Form1.Top)+#13);

wd.Range.InsertAfter('Отступ слева '+IntToStr(Form1.Left)+#13);

wd.Range.InsertAfter('Высота '+IntToStr(Form1.Height)+#13);

wd.Range.InsertAfter('Ширина '+IntToStr(Form1.Width)+#13);

//Показать Word

wa.Visible:= true;

end;

procedure TForm1.SpeedButton8Click(Sender: TObject);

begin

ReportExcel;

end;

procedure TForm1.ReportExcel;

//Отчет в Excel

var

Excel : variant;

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

j : integer;

begin

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

Excel:= CreateOleObject('Excel.Application');

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

Excel.Application.EnableEvents:= false;

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

WorkBook:= Excel.WorkBooks.Add;

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

for j:=0 to 2 do

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

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

WorkBook.WorkSheets[1].Cells[1,1]:= 'Отчет: ';

WorkBook.WorkSheets[1].Cells[2,1]:= 'Параметры формы: ';

WorkBook.WorkSheets[1].Cells[3,1]:= 'Отступ сверху: ';

WorkBook.WorkSheets[1].Cells[3,2]:= Form1.Top;

WorkBook.WorkSheets[1].Cells[4,1]:= 'Отступ слева: ';

WorkBook.WorkSheets[1].Cells[4,2]:= Form1.Left;

WorkBook.WorkSheets[1].Cells[5,1]:= 'Высота: ';

WorkBook.WorkSheets[1].Cells[5,2]:= Form1.Height;

WorkBook.WorkSheets[1].Cells[6,1]:= 'Ширина: ';

WorkBook.WorkSheets[1].Cells[6,2]:= Form1.Width;

//Показать Excel

Excel.Visible:=true;

end;

end.

Файл вывода формы настройки таймера Unit2.pas.

unit Unit2;

interface

uses

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

Dialogs, StdCtrls;

type

TForm2 = class(TForm)

Edit1: TEdit;

Label1: TLabel;

CheckBox1: TCheckBox;

Button1: TButton;

Button2: TButton;

procedure CheckBox1Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

Procedure Edit1KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.CheckBox1Click(Sender: TObject);

begin

if CheckBox1.Checked then

Edit1.Enabled:=false

else

Edit1.Enabled:=true;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

if CheckBox1.Checked then

Form1.Timer1.Enabled:=false

else begin

Form1.Timer1.Enabled:=true;

Form1.Timer1.Interval:=StrToInt(Edit1.Text)*1000; end;

end;

Procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);

begin //Фильтр ввода данных

if not(Key in ['0'..'9', #8]) then

begin MessageBox(0,'Допускается только ввод чисел','Ошибка',mb_ok);

Key:= #0;

end;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

Close;

Form1.N3Click(Sender);

end;

end.

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

unit UStar;

interface

Uses OpenGL,Graphics,Windows;

type

TStar = class

private

Ac1,Ac2:TColor; //переменные для установки цвета

public

procedure PaintStar; //процедура рисования звёзд

procedure SetC1(cv1:TColor); //установить цвет фона

procedure SetC2(cv2:TColor); //установить цвет звёзд

function GetC1:TColor; //получить цвет фона

function GetC2:TColor; //получить цвет звёзд

property c1:TColor read GetC1 write SetC1;

property c2:TColor read GetC2 write SetC2;

end;

implementation

Uses Unit1;

procedure TStar.SetC1(cv1:TColor);

begin

Ac1:=cv1;

end;

procedure TStar.SetC2(cv2:TColor);

begin

Ac2:=cv2;

end;

function TStar.GetC1:TColor;

begin

result:=Ac1;

end;

function TStar.GetC2:TColor;

begin

result:=Ac2;

end;

procedure TStar.PaintStar;

var

i,n,j:integer;

x,y,r:real;

begin

glClearColor (GetRValue(c1)/256, GetGValue(c1)/256, GetBValue(c1)/256, 1.0); // цвет фона

glClear (GL_COLOR_BUFFER_BIT); // очистка буфера цвета

glColor3f (GetRValue(c2)/256, GetGValue(c2)/256, GetBValue(c2)/256); // текущий цвет примитивов

for n:=1 to 12 do begin

x:=(random(100)/100) - (random(100)/100);

y:=(random(100)/100) - (random(100)/100);

glTranslatef (x, y, 0.0);

j:= random(180);

glRotatef (j, 0.0, 0.0, 1.0); //54

r:=random(10)/100;

glBegin (GL_TRIANGLES);

For i := 0 to 4 do begin

glVertex2f (0, 0);

glVertex2f (r * cos (2 * Pi * i / 5),

r * sin (2 * Pi * i / 5)); //0.25

glVertex2f (r* cos (2 * Pi * (i + 1) / 5 ),

r * sin (Pi-2 * Pi * (i + 1)/ 5));

end;

glEnd;

glBegin (GL_TRIANGLES);

For i := 0 to 4 do begin

glVertex2f (r * cos (2 * Pi * i / 5),

r * sin (2 * Pi * i / 5));

glVertex2f (2*r * cos (2 * Pi * i / 5 + Pi /5),

2*r * sin (2 * Pi * i / 5 + Pi / 5));

glVertex2f (r * cos (2 * Pi * (i + 1) / 5 ),

r * sin (Pi-2 * Pi * (i + 1)/ 5));

end;

glEnd;

glRotatef (-j, 0.0, 0.0, 1.0); //-54

glTranslatef (-x, -y, 0.0);

end;

end;

end.

Файл описания динамической библиотеки About.dpr

library About;

uses

SysUtils,

Classes,

UAbout in 'UAbout.pas' {FormAbout};

{$R *.res}

//показать форму

procedure ShowAbout(AOwner:TComponent);

var

Form:TFormAbout;

begin

Form:=TFormAbout.Create(AOwner); //создать форму

Form.ShowModal; //показать форму

Form.Free; //уничтожить форму

end;

exports ShowAbout;

begin

end.

unit UAbout;

interface

uses

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

Dialogs, StdCtrls, jpeg, ExtCtrls;

type

TFormAbout = class(TForm)

Button1: TButton;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

procedure Button1Click(Sender: TObject);

end;

var

FormAbout: TFormAbout;

implementation

{$R *.dfm}

procedure TFormAbout.Button1Click(Sender: TObject);

begin

Close;

end;

end.

Файл описания динамической библиотеки Screen.dpr

library Screen;

uses

SysUtils,

Classes,

Windows,

UScreen in 'UScreen.pas' {FormScreen};

{$R *.res}

//показать заставку

procedure ShowScreen(AOwner:TComponent);

var

Time:extended;

FormSc:TFormScreen;

begin

FormSc:=TFormScreen.Create(AOwner); //создать форму

Time:=GetTickCount/1000; //запомнить время

FormSc.Show; //показать форму

FormSc.Repaint; //перерисовать форму

//пока не вышел лимит времени - ничего не делать

while GetTickCount/1000<Time+4 do;

FormSc.Close; //закрыть форму

FormSc.Free; //уничтожить форму

end;

exports ShowScreen;

begin

end.

unit UScreen;

interface

uses

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

Dialogs, jpeg, ExtCtrls;

type

TFormScreen = class(TForm)

Image1: TImage;

end;

var

FormScreen: TFormScreen;

implementation

{$R *.dfm}

end.

Файл проекта COM-сервера - StarServer.dpr

library StarServer;

uses

ComServ,

UCom in 'UCom.pas',

ULibType in 'ULibType.pas',

StarServer_TLB in 'StarServer_TLB.pas';

exports

DllGetClassObject,

DllCanUnloadNow,

DllRegisterServer,

DllUnregisterServer;

{$R *.TLB}

{$R *.RES}

begin

end.

Файл описания COM- класса - UCom.pas

unit UCom;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses

Windows, ActiveX, Classes, ComObj,OpenGL,ULibType, Graphics;

type

TStar = class(TComObject,IStar)

protected

Ac1,Ac2:TColor;

public

procedure PaintStar;stdcall;

procedure SetC1(cv1:TColor); stdcall;

procedure SetC2(cv2:TColor); stdcall;

function GetC1:TColor; stdcall;

function GetC2:TColor; stdcall;

property c1:TColor read GetC1 write SetC1;

property c2:TColor read GetC2 write SetC2;

end;

const

Class_Star: TGUID = '{AF564D37-C789-4A62-8530-EE0AB25F52F7}';

implementation

uses ComServ;

procedure TStar.SetC1(cv1:TColor);

begin

Ac1:=cv1;

end;

procedure TStar.SetC2(cv2:TColor);

begin

Ac2:=cv2;

end;

function TStar.GetC1:TColor;

begin

result:=Ac1;

end;

function TStar.GetC2:TColor;

begin

result:=Ac2;

end;

procedure TStar.PaintStar;

var

i,n,j:integer;

x,y,r:real;

begin

glClearColor (GetRValue(c1)/256, GetGValue(c1)/256, GetBValue(c1)/256, 1.0); // цвет фона

glClear (GL_COLOR_BUFFER_BIT); // очистка буфера цвета

glColor3f (GetRValue(c2)/256, GetGValue(c2)/256, GetBValue(c2)/256); // текущий цвет примитивов

for n:=1 to 12 do begin

x:=(random(100)/100) - (random(100)/100);

y:=(random(100)/100) - (random(100)/100);

glTranslatef (x, y, 0.0);

j:= random(180);

glRotatef (j, 0.0, 0.0, 1.0); //54

r:=random(10)/100;

glBegin (GL_TRIANGLES);

For i := 0 to 4 do begin

glVertex2f (0, 0);

glVertex2f (r * cos (2 * Pi * i / 5),

r * sin (2 * Pi * i / 5)); //0.25

glVertex2f (r* cos (2 * Pi * (i + 1) / 5 ),

r * sin (Pi-2 * Pi * (i + 1)/ 5));

end;

glEnd;

glBegin (GL_TRIANGLES);

For i := 0 to 4 do begin

glVertex2f (r * cos (2 * Pi * i / 5),

r * sin (2 * Pi * i / 5));

glVertex2f (2*r * cos (2 * Pi * i / 5 + Pi /5),

2*r * sin (2 * Pi * i / 5 + Pi / 5));

glVertex2f (r * cos (2 * Pi * (i + 1) / 5 ),

r * sin (Pi-2 * Pi * (i + 1)/ 5));

end;

glEnd;

glRotatef (-j, 0.0, 0.0, 1.0); //-54

glTranslatef (-x, -y, 0.0);

end;

end;

initialization

TComObjectFactory.Create(ComServer, TStar, Class_Star,

'Star', 'Star Server', ciMultiInstance, tmApartment);

end.

Файл библиотеки типов COM- класса - ULibType.pas

unit ULibType;

interface

uses

Windows, Graphics;

const

Class_Star: TGUID = '{AF564D37-C789-4A62-8530-EE0AB25F52F7}';

type

IStar= interface['{A7DA5480-DF7C-4053-8418-FF2B9BBBACB4}']

procedure PaintStar;stdcall;

procedure SetC1(cv1:TColor); stdcall;

procedure SetC2(cv2:TColor); stdcall;

function GetC1:TColor; stdcall;

function GetC2:TColor; stdcall;

end;

implementation

end.

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.