|
Вопрос # 1 701/ вопрос открыт / |
|
Здравствуйте! необходимо распечатать на фискальном регистраторе тескт, чтобы на чеке небыло ни версии ккм ни ИНН. Производитель прислал пример программирования на делфи. Так вот ехе запускается, а когда открываем код то не компилиться.ругается вот на эту функцию.
подскажите что делать. (Архив с примером прикреплен). подскажите что надо изменить в коде.
Приложение: Переключить в обычный режим- function TfmMain.GetDriver: OleVariant;
- begin
- if VarIsEmpty(FDriver) then
- FDriver := CreateOleObject('Addin.DrvFR');
- Result := FDriver;
- end;
-
 |
Вопрос задал: 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 (статус: Посетитель), 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; { Çàêðûòèå ÷åêà }
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 (статус: 1-ый класс), 17 июня 2008, 15:28 [#2]:
Ошибка вылетает из-за того, что не существует OLE класс "Addin.DrvFR".
Я в этом не очень разбираюсь, но наверно вы сначала должны установить необходимое ПО для поддержки данного класса. Обратитесь к поставщику ПО для консультации.
|
|
ANBsoft (статус: Студент), 17 июня 2008, 15:56 [#3]:
Скорее всего у Вас есть DLL от поставщика.
ЕЕ нужно зарегистрировать в системе примерно так:
"regsvr32 имяДЛЛ"
|
|
min@y™ (статус: Доктор наук), 18 июня 2008, 08:34 [#4]:
Скорее всего данная ситуация должна быть описана производителем девайса в документации или в каком-нибудь файле ReadMe.txt. Поищи на прилагаемом у девайсу диске.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
slonond (статус: Посетитель), 19 июня 2008, 15:42 [#5]:
Всем спасибо за ответы. Уже разобрался.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|