Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 701

/ вопрос открыт /

Здравствуйте! необходимо распечатать на фискальном регистраторе тескт, чтобы на чеке небыло ни версии ккм ни ИНН. Производитель прислал пример программирования на делфи. Так вот ехе запускается, а когда открываем код то не компилиться.ругается вот на эту функцию.
подскажите что делать. (Архив с примером прикреплен). подскажите что надо изменить в коде.

Приложение:
  1. function TfmMain.GetDriver: OleVariant;
  2. begin
  3. if VarIsEmpty(FDriver) then
  4. FDriver := CreateOleObject('Addin.DrvFR');
  5. Result := FDriver;
  6. end;
  7.  


slonond Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: slonond (статус: Посетитель)
Вопрос отправлен: 17 июня 2008, 12:35
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: rnt777

Здравствуйте, slonond!
вопрос очень сжатый) что бы ответить на него хотелось бы знать где описана функция(в главном модуле или нет), как описана (возможно в описании типа TfmMain она отсутствует), как и где вызывается функция, какую ошибку выдает компилятор, и т.д.
в данной ситуации я не могу сказать больше чем компилятор ;)

Ответ отправил: rnt777 (статус: 1-ый класс)
Время отправки: 17 июня 2008, 13:03

Ответ #2. Отвечает эксперт: ANBsoft

Здравствуйте, slonond!
А что за ошибка. В какой версии делфи компилируете?
Лучше запакуйте и выложите весь модуль, легче будет разбираться.

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 17 июня 2008, 14:26


Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 19 июня 2008, 15:42; участников в обсуждении: 4.
slonond

slonond (статус: Посетитель), 17 июня 2008, 12:36 [#1]:

вот весь код

unit fmuMain;

interface

uses
// VCL
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls, ComObj;

type
TfmMain = class(TForm)
btnExecute: TButton;
btnClose: TButton;
Bevel1: TBevel;
btnDriver: TButton;
lblResult: TLabel;
edtResult: TEdit;
edtPrise: TEdit;
edtDepartment: TEdit;
edtSumma: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Label4: TLabel;
procedure btnCloseClick(Sender: TObject);
procedure btnExecuteClick(Sender: TObject);
procedure btnDriverClick(Sender: TObject);
private
FDriver: OleVariant;
procedure UpdateResult;
function GetDriver: OleVariant;
property Driver: OleVariant read GetDriver;
end;

var
fmMain: TfmMain;

implementation

{$R *.DFM}

function TfmMain.GetDriver: OleVariant;
begin
if VarIsEmpty(FDriver) then
FDriver := CreateOleObject('Addin.DrvFR');
Result := FDriver;
end;

procedure TfmMain.btnCloseClick(Sender: TObject);
begin
Close;
end;

procedure TfmMain.UpdateResult;
var
ResultCode: Integer;
ResultCodeDescription: string;
begin
ResultCode := Driver.ResultCode;
ResultCodeDescription := Driver.ResultCodeDescription;
edtResult.Text := Format('(%d) %s', [ResultCode, ResultCodeDescription]);
end;

procedure TfmMain.btnExecuteClick(Sender: TObject);
var
i,j:integer;
begin
btnDriver.Enabled := False;
btnExecute.Enabled := False;
try
For j:=1 to StrToInt(Edit1.Text) do
begin
For i:=1 to 10 do
begin
Driver.Price := StrToCurr(edtPrise.Text);
Driver.Quantity := i;
Driver.Department := StrToInt(edtDepartment.Text);
Driver.Tax1 := 0;
Driver.Tax2 := 0;
Driver.Tax3 := 0;
Driver.Tax4 := 0;
Driver.StringforPrinting := '';
Driver.Sale; { Ïðîäàæà }
if Driver.ResultCode<>0 then
begin
UpdateResult; exit;
end;
end;

Driver.Summ1 := StrToCurr(edtSumma.Text);
Driver.Summ2 := 0;
Driver.Summ3 := 0;
Driver.Summ4 := 0;
Driver.Tax1 := 0;
Driver.Tax2 := 0;
Driver.Tax3 := 0;
Driver.Tax4 := 0;
Driver.DiscountOnCheck := 20;
Driver.StringforPrinting := '';
Driver.CloseCheck; { &#199;&#224;&#234;&#240;&#251;&#242;&#232;&#229; &#247;&#229;&#234;&#224; }
if Driver.ResultCode<>0 then
begin
UpdateResult; exit;
end;

Sleep(2000);
end;
UpdateResult;
finally
btnDriver.Enabled := True;
btnExecute.Enabled := True;
end;
end;

procedure TfmMain.btnDriverClick(Sender: TObject);
begin
btnDriver.Enabled := False;
btnExecute.Enabled := False;
try
Driver.ShowProperties;
UpdateResult;
finally
btnDriver.Enabled := True;
btnExecute.Enabled := True;
end;
end;

end.
iPharaon

iPharaon (статус: 1-ый класс), 17 июня 2008, 15:28 [#2]:

Ошибка вылетает из-за того, что не существует OLE класс "Addin.DrvFR".
Я в этом не очень разбираюсь, но наверно вы сначала должны установить необходимое ПО для поддержки данного класса. Обратитесь к поставщику ПО для консультации.
ANBsoft

ANBsoft (статус: Студент), 17 июня 2008, 15:56 [#3]:

Скорее всего у Вас есть DLL от поставщика.
ЕЕ нужно зарегистрировать в системе примерно так:
"regsvr32 имяДЛЛ"
min@y™

min@y™ (статус: Доктор наук), 18 июня 2008, 08:34 [#4]:

Скорее всего данная ситуация должна быть описана производителем девайса в документации или в каком-нибудь файле ReadMe.txt. Поищи на прилагаемом у девайсу диске.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
slonond

slonond (статус: Посетитель), 19 июня 2008, 15:42 [#5]:

Всем спасибо за ответы. Уже разобрался.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 13 декабря 2017, 19:43
Выполнено за 0.03 сек.
Рейтинг@Mail.ru