library Project2;
uses
SysUtils, Classes ;
function MyFunc(num1,num2,Errcode:Integer; Operation:PChar):integer;stdcall;
begin
Result := 0;
try
if Operation='plus' then
Result:=num1+num2
else if Operation='minus' then
Result:=num1-num2
else if Operation='multiply' then
Result:=num1*num2
else if Operation='div' then
Result:=num1 div num2
else if Operation='mod' then
Result:=num1 mod num2;
except Result:=Errcode;
end;
end;
exports
MyFunc NAME 'MathFunc';
begin
end.
*************************************************************
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Num1Edit: TEdit;
Num2Edit: TEdit;
OpEdit: TEdit;
ResultEdit: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function MyFunc(num1, num2, Errcode:Integer; Operation: PCHar):Integer; stdcall; external 'Project2.dll' name 'MathFunc';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
const
Errcode:Integer=978987;
var
Num1, Num2, Result_:Integer;
Operation:String;
begin
try
Num1:=StrToInt(Num1Edit.Text);
Num2:=StrToInt(Num2Edit.Text);
except
Num1Edit.Text:='0';
Num2Edit.Text:='0';
ResultEdit.Text:='Введите целые ЧИСЛА';
exit;
end;
Operation:=OpEdit.Text;
if (Operation<>'plus')and(Operation<>'minus')and(Operation<>'multiply')
and(Operation<>'div')and(Operation<>'mod')then
begin
ResultEdit.Text:='Введите коректную команду';
exit;
end;
Result_:=MyFunc(Num1, Num2, Errcode, PChar(Operation));
if Result_=Errcode then
begin
ResultEdit.Text:='ОШИБКА';
end
else
begin
ResultEdit.Text:= IntToStr(Result_);
end;
end;
end.
library Project2;
uses
SysUtils, Classes ;
function MyFunc(num1,num2,Errcode,Operation:Integer):integer;stdcall;
begin
Result := 0;
try
case Operation of
0: Result:=num1+num2;
1: Result:=num1-num2;
2: Result:=num1*num2;
3: Result:=num1 div num2;
4: Result:=num1 mod num2;
else Result:= 0;
end;
except Result:=Errcode;
end;
end;
exports
MyFunc NAME 'MathFunc';
begin
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Num1Edit: TEdit;
Num2Edit: TEdit;
ResultEdit: TEdit;
Button1: TButton;
ComboBox1: TComboBox; // тут храним список операций
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function MyFunc(num1, num2, Errcode,Operation: Integer):Integer; stdcall; external 'Project2.dll' name 'MathFunc';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
const
Errcode:Integer=978987;
var
Num1, Num2, Result_:Integer;
Operation:String;
begin
try
Num1:=StrToInt(Num1Edit.Text);
Num2:=StrToInt(Num2Edit.Text);
except
Num1Edit.Text:='0';
Num2Edit.Text:='0';
ResultEdit.Text:='Введите целые ЧИСЛА';
exit;
end;
Result_:=MyFunc(Num1, Num2, Errcode, ComboBox1.ItemIndex); //передаем операцию что выбрал пользователь
if Result_=Errcode then
begin
ResultEdit.Text:='ОШИБКА';
end
else
begin
ResultEdit.Text:= IntToStr(Result_);
end;
end;
end.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.