close

Вход

Забыли?

вход по аккаунту

?

LR9

код для вставкиСкачать
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тульский государственный университет"
Политехнический институт
Кафедра "Автоматизированные станочные системы"
Курс "Информатика"
ЛАБОРАТОРНАЯ РАБОТА №9
Вариант №27
Выполнил студент гр. 622131
Жеремиаш Филомену
Проверил Доцент каф. АСС Зайков Сергей Геннадьевич
Тула 2013
Задание : Выполнить задание №7, вынеся процедуру или функцию в DLL-библиотеку:
Задание №7:
Исходный код DLL-библиотеки :
library find;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
SysUtils,
Classes;
type mass=array[0..4,0..3] of real;
var
B:Mass;
procedure FindMin(B:Mass; i:byte); EXPORT;
var
min:real;
j:integer;
begin
for j:=0 to 3 do begin
if min>B[i,j] then min:= b[i,j];
end;
end;
{$R *.res}
EXPORTS
findmin;
begin
end.
Исходный код программы :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type mass=array[0..4,0..3] of real;
type Minimum=array[0..4] of real;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: String);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
B:Mass;
MassMin:minimum;
implementation
{$R *.dfm}
procedure FindMin(B:Mass; i:byte); FAR; EXTERNAL 'find';
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String);
begin
//данная процедура сделанна вместо клавиши ручной ввод
//эвент при котором значения в массиве обновляются автоматически
//после перезаписи в стринггрид.
if stringgrid1.cells[ACOL,AROW]='' then exit;
try
B[AROW,ACOL]:=StrToInt(StringGrid1.Cells[ACOL,AROW]);
except
ShowMessage('Ошибка ввода в ячейке.' +#32+ (inttostr(ACOL))+inttostr(AROW));
exit
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Y,min:real;
begin
for i:=0 to 4 do
begin
min:= b[i,0];
FindMin(b,i);
MassMin[i]:=min;
end;
{y:=5*MassMin[0]+4*Massmin[1]+3*MassMin[2] + 2*MassMin[3]+1*MassMin[4]; }
//так использовать не будем , сделаем с циклами
y:=0;
for i:=0 to 4 do begin
y:= y+ (5-i)*MassMin[i]
end;
Edit1.Text:=floattostr(y);
end;
end.
Блок схемы программы : Выполненное задание:
Вывод: в ходе выполнения данной лабораторной работы была изучена работа c DLL-библиотеками в Delphi.
Документ
Категория
Рефераты
Просмотров
13
Размер файла
157 Кб
Теги
lr9
1/--страниц
Пожаловаться на содержимое документа